Als u weet dat er nooit duplicaten in de array zijn, kunt u JSON_SEARCH
. gebruiken om het pad te vinden naar de waarde die u wilt verwijderen en gebruik vervolgens JSON_REMOVE
om het te verwijderen. Merk op dat u moet controleren dat JSON_SEARCH
vindt daadwerkelijk een waarde, anders JSON_REMOVE
zal het hele veld ongeldig maken:
UPDATE waitinglist
SET new = JSON_REMOVE(new, JSON_UNQUOTE(JSON_SEARCH(new, 'one', 'orange')))
WHERE JSON_SEARCH(new, 'one', 'orange') IS NOT NULL
Ik heb een kleine demo op dbfiddle gemaakt .
Let op:je moet JSON_UNQUOTE
. gebruiken op het antwoord van JSON_SEARCH
om er een geldig pad van te maken voor JSON_REMOVE
.