json列中的MySQL 5.7搜索值

时间:2018-11-14 04:58:56

标签: mysql mysql-5.7

如何在同一列的两个JSON数组中搜索值“ ABCD”?这是方括号内的多个JSON数据 在下面添加了示例JSON数据:

[{"id": "ABCD", "TEST1": "2002", "value": "test value1", "comment": ""}, {"id": "ABCD", "TEST2": "2003", "value": "test value2", "comment": ""}]

2 个答案:

答案 0 :(得分:3)

您可以使用Json_Search()功能。在此函数中,我们可以将第二个参数设置为oneall。我们将其用作all来搜索包含给定值的所有键。

SELECT JSON_SEARCH(json_column_name, 'all', 'ABCD');

演示-模式(MySQL v5.7)

SET @json_column_name = '[{"id": "ABCD", "TEST1": "2002", "value": "test value1", "comment": ""}, {"id": "ABCD", "TEST2": "2003", "value": "test value2", "comment": ""}]';

SELECT JSON_SEARCH(@json_column_name, 'all', 'ABCD') AS result;

结果

| result                 |
| ---------------------- |
| ["$[0].id", "$[1].id"] |

View on DB Fiddle

答案 1 :(得分:1)

您可以遵循mysql文档

mysql> SELECT JSON_SEARCH(@j, 'all', 'abc');

在这里您可以搜索任何内容。

Document: