在 MYSQL 中提取 python 列表值
P粉153503989
P粉153503989 2023-09-04 19:35:45
0
2
425

我在 MySQL 数据库中有一个列,其中包含 json 格式值的 python 列表,如下所示:

[{"name":"me","color":"red"} , {"name":"you","color":"blue"}]

我无法使用 json_extract() 函数,因为它的格式与 json 不完全相同

我想提取新列中格式化的每个 json ,如下所示:

第一列 第二列
{“名称”:“我”,“颜色”:“红色”} {"name":"you","color":"blue"}

P粉153503989
P粉153503989

全部回复 (2)
P粉311617763

以下查询结合字符串操作函数SUBSTRING_INDEXREPLACECONCAT将获得预期结果。

SELECT CONCAT('{', REPLACE(SUBSTRING_INDEX(SUBSTRING_INDEX(`column`, '}', 1), '{', -1), '\"', '"'), '}') AS First_column, CONCAT('{', REPLACE(SUBSTRING_INDEX(SUBSTRING_INDEX(`column`, '}', 2), '{', -1), '\"', '"'), '}') AS Second_column FROM mytable;

这里是使用 DBFIDDLE 的工作演示

这给了我预期的输出:

第一列 第二列
{“名称”:“我”,“颜色”:“红色”} {"name":"you","color":"blue"}

请将mytable替换为 your_actual_table_name,并将column替换为您的实际列名称。我用反引号包围了列,因为列是 sql 中的保留关键字。

    P粉445714413

    您应该能够在问题中包含的示例列上使用 JSON_EXTRACT:

    SET @column = '[{"name":"me","color":"red"} , {"name":"you","color":"blue"}]'; SELECT JSON_EXTRACT(@column, '$[0]') AS First_column, JSON_EXTRACT(@column, '$[1]') AS Second_column;

    输出:

    第一列 第二列
    {“名称”:“我”,“颜色”:“红色”} {“名称”:“你”,“颜色”:“蓝色”}
      最新下载
      更多>
      网站特效
      网站源码
      网站素材
      前端模板
      关于我们 免责声明 Sitemap
      PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!