Jika Anda tahu tidak pernah ada duplikat dalam array, Anda dapat menggunakan JSON_SEARCH
untuk menemukan jalur ke nilai yang ingin Anda hapus, lalu gunakan JSON_REMOVE
untuk menghapusnya. Perhatikan bahwa Anda perlu memeriksa JSON_SEARCH
benar-benar menemukan nilai, jika tidak JSON_REMOVE
akan membatalkan seluruh bidang:
UPDATE waitinglist
SET new = JSON_REMOVE(new, JSON_UNQUOTE(JSON_SEARCH(new, 'one', 'orange')))
WHERE JSON_SEARCH(new, 'one', 'orange') IS NOT NULL
Saya telah membuat demo kecil di dbfiddle .
Catatan Anda harus menggunakan JSON_UNQUOTE
atas tanggapan dari JSON_SEARCH
untuk menjadikannya jalur yang valid untuk JSON_REMOVE
.