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 .