php - 使用 MySQL 返回 JSON 字符串中的条目

标签 php mysql arrays json

我将数据作为 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/

相关文章:

c++ - 如何允许用户用字符替换数字 - Tic-Tac-Toe C++

php - 无法通过 socket 问题连接到本地 MySQL 服务器

php - 有没有办法改变 cURL SSL session ID 过时的速率?

mysql - 是否可以像这样创建一个涉及来自两个表的行的查询?

mysql - 如何在sql中选择表的最后一行?

c++ - 使用指针跨越 INTEGER 数组中的所有元素

arrays - 在 bash 中相应地对两个数组进行排序

php - 如何删除 jsondecode 中的特定值

javascript - 动态 id 分配给可折叠 div

php - Jquery循环通过json数组获取数据并用逗号分隔?