J'ai une table dans une base de données MySQL 5.7.12 avec une colonne JSON.
Les données de la colonne ont la structure suivante (le tableau json peut contenir plusieurs objets json) :
[{"ste": "I", "tpe": "PS"}, {"ste": "I", "tpe": "PB"}]
Je souhaite programmer un changement de valeur UPDATE
查询,将tpe=PB
的ste
.
C'est ma tentative :
更新用户SET ext = JSON_SET(JSON_SEARCH(ext, 'one', 'PB', NULL, '$**.tpe'), '$.tpe', 'A');
Le résultat de la requête doit être :
[{"ste": "I", "tpe": "PS"}, {"ste": "A", "tpe": "PB"}]
Cela ne fonctionne pas - la colonne est mise à jour comme suit :
"$[0].tpe"
Comment puis-je le faire fonctionner ?
Modifier
Je pense que cela a plus de sens, mais il y a toujours des problèmes de syntaxe
UPDATE user SET ext = JSON_SET(ext->JSON_SEARCH(ext, 'one', 'PS', NULL, '$**.tpe'), '$.tpe', 'A');
J'espère que vous en avez encore besoin.
Essayez de mettre à jour sa valeur dans votre
JSON_SET
中使用变量路径。使用JSON_SEARCH
来获取变量路径,然后用绝对路径tpe
替换为ste
. Travaille pour moi!