arrays - Postgres 字符串数组比较
问题描述
我有一个形式的数组:
myArray = ["1234-56", "1234-567"]
我的表有一个列,它的构造与数组完全一样,由一个字符串数组组成,我们称之为列:myColumn。
我想输出数组的一个或多个值匹配的行。
我目前的尝试如下:
SELECT *
FROM myTable
WHERE myColumn && myArray;
但这以以下错误消息结束:
ERROR: Column "56" does not exist.
解决方案
双引号中的字符串是 SQL 中的“标识符”,即表、列、函数或其他对象的名称。
所以当你写
SELECT * FROM mytable
WHERE mycolumn && ARRAY["56","95"];
PostgreSQL 将识别"56"
为列名(在该上下文中它不能是表),并且它抱怨该表mytable
没有名为56
.
解决方法是标记56
为字符串字面量,即用单引号括起来:
SELECT * FROM mytable
WHERE mycolumn && ARRAY['56','95'];
推荐阅读
- javascript - Are there any ways to select a CSS class with JS that doesn't exist in DOM?
- swift - 如何快速更改用户界面中变量的值?
- list - Efficiently zipping unequal length lists in Elixir
- python - scipy lecture notes, create array example
- android - 如何修复从 android 中的 FusedLocationProviderClient 获取空位置值
- objective-c - NSCollectionView - 如何制作 Finder 的图标视图?
- android - How to speedup when change fragment in Android
- javascript - How can I get item from javascript object using keys?
- reactjs - React hooks exhaustive-deps 规则也需要 useEffect 数组中的函数
- mysql - 创建一个临时表极大地加快了我的数据库调用,这是为什么呢?