2017-07-08 5 views
0

\uをjsonフィールドで\\uでエスケープする方法mysqlの uで uを\ uに置き換えてください

場合、今コラムを読んだ後、JSONパーサーは、私が\\u\uを交換するときに解決されたエラーを与えるが、

update table_name set column_name=REPLACE(column_name, '\u', '\\u'); 

でフィールドを更新私にエラーを与えることである

ERROR 3140 (22032): Invalid JSON text: "Invalid escape character in string." at position 564 in value for column 'table_name.column_name'. 

また、構文で\をエスケープしようとしましたが、役に立たなくなりました。誰でも助けてもらえますか? SQL更新テーブル値について

+1

つの質問:1.あなたは、これはあなたが解決しようとしているものは何でも、問題解決するために何をする必要があるかありますか? 2.あなたは本当に解決しようとしている問題は何ですか?どのように無効な列にデータを取得しましたか? JSON関数を使用せずにJSON列を操作するべきではなく、JSON列のデータを直接操作する必要はありません。 –

+0

これは、新しいテーブルのjsonカラムに移行したレールでActiverecordシリアライザを使用してシリアル化された古いデータですが、このJSONをRubyで解析するとエラーが発生します。 JSONで手動で\ uを\\ uに変更して問題が解決したことを確認しました – akabhirav

答えて

0

は、Uを\\するuと\:

update table_name set column_name=REPLACE(column_name, '\\u', '\\\\u') [where condition]; 
+0

は私に同じエラーが表示されます – akabhirav

関連する問題