Mysql
 sql >> Base de données >  >> RDS >> Mysql

Supprimer l'élément de tableau par valeur dans mysql json

Si vous savez qu'il n'y a jamais de doublons dans le tableau, vous pouvez utiliser JSON_SEARCH pour trouver le chemin d'accès à la valeur que vous souhaitez supprimer, puis utilisez JSON_REMOVE pour le supprimer. Notez que vous devez vérifier que JSON_SEARCH trouve réellement une valeur, sinon JSON_REMOVE annulera tout le champ :

UPDATE waitinglist 
SET new = JSON_REMOVE(new, JSON_UNQUOTE(JSON_SEARCH(new, 'one', 'orange')))
WHERE JSON_SEARCH(new, 'one', 'orange') IS NOT NULL

J'ai fait une petite démo sur dbfiddle .

Notez que vous devez utiliser JSON_UNQUOTE sur la réponse de JSON_SEARCH pour en faire un chemin valide pour JSON_REMOVE .