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 .