gpt4 book ai didi

mysql - 替换 mysql 表中的字符以导出到 JSON 文件

转载 作者:行者123 更新时间:2023-11-29 16:02:54 24 4
gpt4 key购买 nike

我有一个非常长的表(超过 4M 的记录,我使用 MySql),并且它有很多带有以下字符串的记录:\\"

我正在尝试将此表导出到 mongodb,但是当我导入 JSON 文件时,mongodb 会向我抛出此错误:

Failed: error processing document #18: invalid character 't' after object key:value pair

这是我的查询:MySQL

SELECT json_object(
"id", id,
"execution_id", execution_id,
"type", type,
"info", info,
"position", position,
"created_at", json_object("$date", DATE_FORMAT(created_at,'%Y-%m-%dT%TZ')),
"updated_at", json_object("$date", DATE_FORMAT(updated_at,'%Y-%m-%dT%TZ'))
)as 'json'
FROM myTable
INTO OUTFILE 'myPath';

我知道问题出在字符串上,我的问题是:如何将这个特定字符串更改为 \"?手动更改它不是一个选项,而且我对查询的了解有限。请帮忙。感谢您阅读我的文章。

具有该字符的列是“info”,下面是一个示例:

{
"id": 30,
"execution_id": 2,
"type": "PHASE",
"info": "{ \\r\\n \\"title\\": \\"Phase\\",
\\r\\n \\"order\\": \\"1\\",
\\r\\n \\"description\\": \\"Example Phase 1\\",
\\r\\n \\"step\\": \\"end\\",
\\r\\n \\"status\\": \\"True\\"\\r\\n}",
"position": 24,
"created_at": {"$date": "2018-01-11T15:01:46Z"},
"updated_at": {"$date": "2018-01-11T15:01:46Z"}
}

最佳答案

您应该能够使用 MySQL REPLACE() function 来执行此操作.

反斜杠是 MySQL REPLACE() 函数中的一种特殊情况,因此您需要使用 \\ 来表示每个文字 \,因此要将 \\ 替换为 \,您需要运行如下命令:

REPLACE(info,'\\\\','\\')

您的完整查询将如下所示:

SELECT json_object(
"id", id,
"execution_id", execution_id,
"type", type,
"info", REPLACE(info,'\\\\','\\'),
"position", position,
"created_at", json_object("$date", DATE_FORMAT(created_at,'%Y-%m-%dT%TZ')),
"updated_at", json_object("$date", DATE_FORMAT(updated_at,'%Y-%m-%dT%TZ'))
)as 'json'
FROM myTable
INTO OUTFILE 'myPath';

关于mysql - 替换 mysql 表中的字符以导出到 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56022737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com