Wenn Sie wissen, dass das Array niemals Duplikate enthält, können Sie JSON_SEARCH
verwenden um den Pfad zu dem Wert zu finden, den Sie löschen möchten, und verwenden Sie dann JSON_REMOVE
es zu entfernen. Beachten Sie, dass Sie JSON_SEARCH
überprüfen müssen findet tatsächlich einen Wert, sonst JSON_REMOVE
löscht das gesamte Feld:
UPDATE waitinglist
SET new = JSON_REMOVE(new, JSON_UNQUOTE(JSON_SEARCH(new, 'one', 'orange')))
WHERE JSON_SEARCH(new, 'one', 'orange') IS NOT NULL
Ich habe eine kleine Demo auf dbfiddle erstellt .
Beachten Sie, dass Sie JSON_UNQUOTE
verwenden müssen auf die Antwort von JSON_SEARCH
um daraus einen gültigen Pfad für JSON_REMOVE
zu machen .