Mysql 8.0 JSON 数据类型的数组如何完全匹配

2023-01-10 17:39:15 +08:00
 nidalee

比如数据库有一个 test 表,有 3 条数据

id num_array
1 [1,2,3]
2 [1,2]
3 [1]

我想搜索到只包含[1,2]的数据,但是目前看了下网上的一些资料,都没有这种纯数组操作方法的说明

SELECT * FROM test WHERE JSON_CONTAINS (num_array,'[1,2]')

返回的数据是

id num_array
1 [1,2,3]
2 [1,2]

有什么办法执行上面的 sql 可以做到只返回

id num_array
2 [1,2]
1195 次点击
所在节点    MySQL
1 条回复
nidalee
2023-01-10 18:03:12 +08:00
家人们,我悟了
SELECT * FROM requirement_district WHERE district -> '$[*]' = JSON_ARRAY(1,2)
这么写就行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/907977

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX