如何在Google Spanner中查询包含指定值的ARRAY<STRING>列
数组类型列的SQL筛选方案
1. 通用SQL筛选数组包含指定元素的方法
不同数据库对数组类型的支持语法略有差异,以下是常见数据库的实现方式:
- PostgreSQL:使用
ANY运算符或数组包含运算符@>-- 方法1:匹配数组中任意位置的目标元素 SELECT * FROM your_table WHERE '目标元素' = ANY(array_column); -- 方法2:判断数组是否包含目标元素组成的子数组 SELECT * FROM your_table WHERE array_column @> ARRAY['目标元素']; - MySQL:若为JSON数组类型,使用
JSON_CONTAINS函数SELECT * FROM your_table WHERE JSON_CONTAINS(json_array_column, '"目标元素"'); - SQL Server:原生数组类型可直接用
ARRAY_CONTAINS,字符串拼接的数组可结合STRING_SPLIT处理-- 原生数组类型筛选 SELECT * FROM your_table WHERE ARRAY_CONTAINS(array_column, '目标元素');
2. Google Spanner中筛选ARRAY列的方法
针对Spanner的ARRAY<STRING>类型列FOO,筛选包含元素"BAR"的记录,使用内置的ARRAY_CONTAINS函数:
SELECT * FROM your_table WHERE ARRAY_CONTAINS(FOO, 'BAR');
如果需要筛选FOO列恰好等于数组["BAR"]的记录,直接使用等于判断:
SELECT * FROM your_table WHERE FOO = ['BAR'];
内容的提问来源于stack exchange,提问作者Andrew Q
相关产品推荐
相关产品推荐

