使用WHERE子句查询PostgreSQL

时间:2016-04-11 20:43:51

标签: sql postgresql where-clause

我创建了一个名为Markers的表。下面是.sql文件。

for(int i=0, n=11; n<MAX; i++, n++)

我有一个包含IP地址的文本文件。该文件看起来像这样。

CREATE TABLE markers (
    id SERIAL PRIMARY KEY ,
    ip_address varchar(25),
    Hostname varchar(255),
    Continent varchar(255),
    Country varchar(255),
    Capital varchar(255),
    State varchar (255),
    City_Location varchar(255)
); 

属于每个IP地址的信息存储在表中。 如果我想收集ip 8.8.8.8的数据,我可以写一个这样的查询

8.8.8.8
23.64.0.0
31.0.0.0
50.22.0.0
54.244.0.0
54.72.0.0
54.80.0.0

同样我可以为其他IP做。但这很费时间,因为我必须为每个IP地址编写一个查询。

相反,有没有什么方法可以从文本文件中读取IP地址并一次性执行所有IP地址的查询?

任何有关此的帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用psql并发出以下命令(针对您的特定情况定制,阅读PG手册&#34; COPY FROM&#34;):

create temp table ip_addresses (ip_address text);
copy ip_addresses from stdin csv; -- pipe your text file here
select * from markers where ip_address in (select * from ip_addresses);