Jeśli wiesz, że w tablicy nigdy nie ma duplikatów, możesz użyć JSON_SEARCH
aby znaleźć ścieżkę do wartości, którą chcesz usunąć, a następnie użyj JSON_REMOVE
aby go usunąć. Pamiętaj, że musisz sprawdzić, czy JSON_SEARCH
faktycznie znajduje wartość, w przeciwnym razie JSON_REMOVE
unieważni całe pole:
UPDATE waitinglist
SET new = JSON_REMOVE(new, JSON_UNQUOTE(JSON_SEARCH(new, 'one', 'orange')))
WHERE JSON_SEARCH(new, 'one', 'orange') IS NOT NULL
Zrobiłem małe demo na dbfiddle .
Pamiętaj, że musisz użyć JSON_UNQUOTE
w odpowiedzi z JSON_SEARCH
aby była poprawną ścieżką dla JSON_REMOVE
.