在 Postgres 中搜索整数数组
有没有其他方法可以在 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'
的每一行。
Is there any other way to search for a certain value in an integer[]
column in Postgres?
My currently installed Postgres version does not allow the following statement:
SELECT * FROM table WHERE values *= 10;
Array examples:
'{11043,10859,10860,10710,10860,10877,10895,11251}'
'{11311,10698,10697,10710,10712,10711,10708}'
The statement should return every row where the array contains '10710'
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
对于相等性检查,您可以简单地:
阅读有关 ANY/手册中的一些内容。
对于大表/大数组,请考虑数组运算符具有索引支持,例如:
参见:
对于整数数组,请考虑附加模块 < a href="https://www.postgresql.org/docs/current/intarray.html" rel="noreferrer">
intarray
:相关:
For equality checks you can simply:
Read about ANY/SOME in the manual.
For big tables / big arrays consider array operators with index support, like:
See:
For integer arrays consider the additional module
intarray
:Related:
快速搜索也会如此,但您应该使用索引要点或 gin 作为 intarray 类型 Postgres intarray
quickly search will be so, but you should use index gist or gin for intarray type Postgres intarray