我将数据作为 JSON 字符串存储在 mysql 中,因为它在我的情况下有很多优点。这些 JSON 字符串可能会变得非常大,并且 JSON 中还有其他条目(具有唯一的 ID)。
目前,我正在获取整个 JSON 字符串,然后循环遍历它以按 id 查找特定条目。
有没有一种方法可以让我只使用 MySQL 来获取我在 JSON 字符串中查找的条目?这样我就不必获取整个 JSON 字符串并循环遍历它。
最佳答案
使用common_schema 。这是一个例子: 在第一个我设置的具有 json 格式的变量中,假设这是您的记录字段表中的 json。
SET @json = '{"id":"1","name":"number one"}';
然后将该变量(您的字段)解析为两个单独的列 common_schema使用 extract_json_value() 函数:
select common_schema.extract_json_value(@json,'/id') as ID,
common_schema.extract_json_value(@json,'/name') as NAME
输出
+----------+-----------+
| ID | NAME |
+----------+-----------+
| 1 | number one|
+----------+-----------+
因此您可以在表中使用 CONDITIONS STATMENT 进行查询。此示例查询(field3 中的 JSON):
SELECT field1, field2, field3 as JSON,
common_schema.extract_json_value(field3, '//sub1') as SUB1,
common_schema.extract_json_value(field3, '//sub2') as SUB2
FROM your_table
WHERE common_schema.extract_json_value(field3, '//sub1') = 'YOUR_CONDITION'
关于php - 使用 MySQL 返回 JSON 字符串中的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28737672/