以下是我要做的事情的总结:

$array[0] = 1;
$array[1] = 2;

$sql = "SELECT * FROM table WHERE some_id = $array"

显然,这里有一些语法问题,但这就是我想做的,我还没有找到任何能说明如何做到这一点的东西.

目前,我的计划是做以下几点:

foreach($idList as $is)
    $where .= 'some_id=' . $id . ' OR';
endforeach

$sql = "SELECT * FROM table WHERE " . $where;

那么,PostgreSQL是否支持使用数组进行搜索,或者我是否需要执行类似于我的解决方案的操作?

推荐答案

SELECT  *
FROM    table
WHERE   some_id = ANY(ARRAY[1, 2])

ANSI兼容:

SELECT  *
FROM    table
WHERE   some_id IN (1, 2)

首选ANY语法,因为数组作为一个整体可以在绑定变量中传递:

SELECT  *
FROM    table
WHERE   some_id = ANY(?::INT[])

需要传递数组的字符串表示形式:{1,2}

Postgresql相关问答推荐

横向联接返回的行数太多

在Go中,如何在没有数据库包的情况下运行PostgreSQL查询?

PostgreSQL:在 select 和 group by 中使用不同的列不会导致错误

对表执行 DISABLE TRIGGER ALL 是否也会禁用 FK 指向该表?

如何使用有限的varchar在postgres中存储单词é

PostgreSQL 函数按名称传递参数

PostgreSQL 错误:42P01:relation "[Table]" does not exist

更详细地解释 JOIN 与 LEFT JOIN 和 WHERE 条件性能建议

SQL:当谈到 NOT IN 和 NOT EQUAL TO 时,哪个更有效,为什么?

从 Postgres 数据库中删除所有函数

gem install pg 无法绑定到 libpq

是否可以在 PostgreSQL 中部分刷新materialized视图?

如何判断每个组中是否存在值

Postgres 删除表语法错误

django.db.utils.IntegrityError:duplicate key value violates unique constraint "django_content_type_pkey"

将属性添加到 Sequelize FindOne 返回的对象

如何使用 Django Migrations 重新创建已删除的表?

PostGIS - 将多面体转换为单面体

防止 PostgreSQL 中的递归触发器

如何在 postgresql 中获取整个表的哈希?