Heim > Fragen und Antworten > Hauptteil
P粉3116177632023-09-05 18:49:35
以下查询结合字符串操作函数 SUBSTRING_INDEX
、REPLACE
和 CONCAT
将获得预期结果。
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;
这给了我预期的输出:
第一列 | 第二列 |
---|---|
{“名称”:“我”,“颜色”:“红色”} | {"name":"you","color":"blue"} |
请将 mytable
替换为 your_actual_table_name,并将 column
替换为您的实际列名称。我用反引号包围了列,因为列是 sql 中的保留关键字。
P粉4457144132023-09-05 17:11:12
您应该能够在问题中包含的示例列上使用 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;
输出:
第一列 | 第二列 |
---|---|
{“名称”:“我”,“颜色”:“红色”} | {“名称”:“你”,“颜色”:“蓝色”} |