2017-07-03 1 views
0

J'ai une colonne JSON dans une base de données MySQL. Je suis en train de remplacer un objet JSON avec un autre en utilisantMySQL JSON_SEARCH et JSON_REPLACE n'échappent pas les guillemets

UPDATE table SET ColName = JSON_REPLACE(ColName, '{"sample": "sample"}'); 

Il semble après exécution de cette instruction, MySQL insère \ « échappé des guillemets autour de mes propriétés JSON comme ceci:

{\ » échantillon \. « : \ » sample \ "}

Cela provoque ma requête JSON_SEARCH à l'échec dans la recherche de « échantillon » en raison des citations échappées est-il possible que je peux utiliser JSON_REPLACE sans l'avoir ajouter échappe à la double citations?

J'ai essayé d'encapsuler JSON_UNQUOTE autour de JSON_REPLACE dans mon instruction update, cela n'a pas résolu le problème.

+0

Je suppose que vous devez passer un objet JSON, et non un varchar: https://dev.mysql.com/doc/refman/5.7/fr/json-creation-functions.html#function_json-object –

+1

Essayez: '... CAST ('{" sample ":" exemple "}' AS JSON) ...'. Voir [12.10 Fonctions et opérateurs Cast :: CAST()] (https://dev.mysql.com/doc/refman/5.7/fr/cast-functions.html#function_cast). – wchiquito

Répondre

0

réponse de wchiquito a travaillé

« Essayez ... CAST('{"sample": "sample"}' AS JSON) ... »

wchiquito, je peux changer la réponse acceptée à votre commentaire si vous postez une réponse.