如何在SurrealDB中查询数组包含指定元素
在SurrealDB中实现类似SQL IN的数组匹配查询
匹配数组中包含单个特定值
你的原语句WHERE data = ['value_a']是判断data字段完全等于该单元素数组,而非判断数组是否包含该值。要实现单个值的匹配,有两种常用写法:
- 使用
IN操作符(值在前,数组字段在后):SELECT * FROM table WHERE 'value_a' IN data; - 使用
CONTAINS()函数:SELECT * FROM table WHERE CONTAINS(data, 'value_a');
匹配数组中包含任意一组值中的至少一个(对应SQL的IN效果)
如果要匹配数组字段包含指定集合中的任意一个值,可以用以下两种方式:
- 使用
ANY()结合IN操作符:SELECT * FROM table WHERE ANY(data) IN ['value_a', 'value_b', 'value_c']; - 使用
CONTAINS_ANY()函数:SELECT * FROM table WHERE CONTAINS_ANY(data, ['value_a', 'value_b', 'value_c']);
额外说明
如果需要判断数组包含所有指定值(类似多条件AND逻辑),可以用CONTAINS_ALL()函数:
SELECT * FROM table WHERE CONTAINS_ALL(data, ['value_a', 'value_b']);
内容的提问来源于stack exchange,提问作者codesandtags
相关产品推荐
相关产品推荐

