使用 WHERE 子句查询 PostgreSQL

Querying PostgreSQL using WHERE clause

我创建了一个名为标记的 table。下面是 .sql 文件。

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 地址的文本文件。该文件看起来像这样。

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地址的信息存储在table中。 如果我想收集 ip 8.8.8.8 的数据,我可以这样写一个查询

SELECT * FROM markers WHERE ip_address='8.8.8.8';

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

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

如有任何帮助,我们将不胜感激。谢谢。

您可以使用 psql 并发出以下命令(根据您的具体情况定制,阅读 "COPY FROM" 上的 PG 手册):

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);