2017-07-08 3 views
0

Wie kann ich \u in einem JSON-Feld mit einem \\u entkommen.Ersetzen Sie u mit u in mysql

Der Fall ist nun, dass die Spalte nach dem Lesen der JSON-Parser mir einen Fehler gibt, die gelöst wird, wenn ich \u mit \\u ersetzen, aber das Feld mit

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

ist mir ein Fehler

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

Ich versuchte auch, die \ in der Syntax zu entkommen, aber ohne Erfolg. Kann mir bitte jemand helfen.

+1

Zwei Fragen: 1. Sind Sie sicher das ist, was Sie tun müssen, um zu reparieren, was Problem, das Sie zu lösen sind versuchen? 2. Welches Problem versuchst du * wirklich * zu lösen? Wie haben Sie Daten in die Spalte erhalten, die ungültig war? Sie sollten JSON-Spalten nicht manipulieren, ohne JSON-Funktionen zu verwenden, und Daten in JSON-Spalten müssen per Definition nicht direkt manipuliert werden. –

+0

Das sind also alte Daten, die mit Activetrecord Serializer in Rails serialisiert wurden, die ich in eine JSON-Spalte in einer neuen Tabelle migriert habe, aber beim Analysieren dieses JSON auf Ruby bekomme ich einen Fehler. Ich änderte manuell in JSON und sah, dass es das Problem gelöst – akabhirav

Antwort

0

für SQL-Aktualisierung Tabellenwerte \ u u \\:

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

immer noch gibt mir den gleichen Fehler – akabhirav