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
.