[英]Replacing a character from mysql table to export to JSON file
我有一個非常長的表(超過4M的記錄,我使用MySql),它有很多記錄與這個字符串: \\\\“
我正在嘗試將此表導出到mongodb,但是當我導入JSON文件時,mongodb會向我拋出此錯誤:
失敗:錯誤處理文檔#18:對象鍵后的字符't'無效:值對
這是我的疑問: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()
函數執行此操作。
反斜杠在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';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.