Pokud víte, že v poli nikdy nejsou duplikáty, můžete použít JSON_SEARCH
vyhledejte cestu k hodnotě, kterou chcete odstranit, a poté použijte JSON_REMOVE
k jeho odstranění. Nezapomeňte, že je třeba zkontrolovat JSON_SEARCH
skutečně najde hodnotu, jinak JSON_REMOVE
zruší celé pole:
UPDATE waitinglist
SET new = JSON_REMOVE(new, JSON_UNQUOTE(JSON_SEARCH(new, 'one', 'orange')))
WHERE JSON_SEARCH(new, 'one', 'orange') IS NOT NULL
Udělal jsem malou ukázku na dbfiddle .
Upozorňujeme, že musíte použít JSON_UNQUOTE
na odpověď z JSON_SEARCH
aby byla platnou cestou pro JSON_REMOVE
.