Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Array-Element nach Wert in mysql json entfernen

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 .