Mysql
 sql >> Database >  >> RDS >> Mysql

Rimuovere l'elemento dell'array per valore in mysql json

Se sai che non ci sono mai duplicati nell'array, puoi usare JSON_SEARCH per trovare il percorso del valore che desideri eliminare, quindi utilizza JSON_REMOVE per rimuoverlo. Nota che devi controllare che JSON_SEARCH trova effettivamente un valore, altrimenti JSON_REMOVE annullerà l'intero campo:

UPDATE waitinglist 
SET new = JSON_REMOVE(new, JSON_UNQUOTE(JSON_SEARCH(new, 'one', 'orange')))
WHERE JSON_SEARCH(new, 'one', 'orange') IS NOT NULL

Ho realizzato una piccola demo su dbfiddle .

Nota che devi usare JSON_UNQUOTE sulla risposta di JSON_SEARCH per renderlo un percorso valido per JSON_REMOVE .