sql - 在 Postgres 中搜索整数数组

标签 sql arrays postgresql

有没有其他方法可以在 Postgres 的 integer[] 列中搜索某个值?

我当前安装的 Postgres 版本不允许允许以下语句:

SELECT * FROM table WHERE values *= 10;

数组示例:

'{11043,10859,10860,10710,10860,10877,10895,11251}'
'{11311,10698,10697,10710,10712,10711,10708}'

该语句应返回数组包含 '10710' 的每一行。

最佳答案

对于相等性检查,您可以简单地:

SELECT * FROM tbl WHERE 10 = ANY (values);

了解 ANY/SOME in the manual .
对于大表/大数组,请考虑 array operators具有索引支持,例如:

SELECT * FROM tbl WHERE values @> '{10}'::int[];

参见:

对于整数数组,考虑附加模块 intarray :

相关:

关于sql - 在 Postgres 中搜索整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8242643/

相关文章:

sql - T-Sql 按 MIN() 选择和分组

java - 根据条件从ArrayList中随机获取n个元素,并将其从原始列表中删除

ruby-on-rails - 如何显示我已经在 Rails 中其他地方使用的数据库表中的数据

postgresql - 从 PL/pgSQL 函数返回具有未知列的动态表

mysql - 在 MySQL 中结合 AVG 和 COUNT

php - 如何使用此代码获取user_id

尝试创建表时出现 MySQL 错误,

c - 在一个函数中对 5 个数组进行排序

javascript - 尝试通过不存在的键获取值时,向 JavaScript 关联数组 "on the fly"添加新值

sql - 用于检测重叠时间范围的 PostgreSQL 查询