Hvis du ved, at der aldrig er dubletter i arrayet, kan du bruge JSON_SEARCH
for at finde stien til den værdi, du vil slette, og brug derefter JSON_REMOVE
at fjerne det. Bemærk, at du skal kontrollere, at JSON_SEARCH
finder faktisk en værdi, ellers JSON_REMOVE
annullerer hele feltet:
UPDATE waitinglist
SET new = JSON_REMOVE(new, JSON_UNQUOTE(JSON_SEARCH(new, 'one', 'orange')))
WHERE JSON_SEARCH(new, 'one', 'orange') IS NOT NULL
Jeg har lavet en lille demo på dbfiddle .
Bemærk, at du skal bruge JSON_UNQUOTE
på svaret fra JSON_SEARCH
for at gøre det til en gyldig sti for JSON_REMOVE
.