有没有其他方法可以在 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/