Dav*_*ong 6 mysql database select json mysql-5.7
我对于在 MySQL 中处理 JSON 字段还很陌生。我遇到的所有解决方案都处理具有键/值的对象;无法找到处理 JSON 数组的方法。
无论如何,我想要做的是能够选择其中interestIds包含的所有行2。我怎么做?谢谢。
用户表
+----+-------------+
| id | interestIds |
+----+-------------+
| 1 | [1, 2] |
| 2 | [3, 2] |
| 3 | [2, 4] |
+----+-------------+
Run Code Online (Sandbox Code Playgroud)
示例测试查询:
SET @userId = 2;
SELECT * FROM Users
WHERE @userId IN JSON_CONTAINS(@user, interestIds, '$[1]');
Run Code Online (Sandbox Code Playgroud)
我对如何使用这些JSON_*功能感到困惑;不知道第三个参数该放什么...
您可以使用以下解决方案JSON_CONTAINS:
SELECT *
FROM Users
WHERE JSON_CONTAINS(interestIds, '2') = 1;
Run Code Online (Sandbox Code Playgroud)
第三个(可选)参数path使您可以仅在JSON值的特定部分使用此函数。因此,下面的示例检查是否2是数组的第二个值:
SELECT *
FROM test
WHERE JSON_CONTAINS(interestIds, '2', '$[1]') = 1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14240 次 |
| 最近记录: |