sql >> Base de Datos >  >> RDS >> Mysql

Eliminar elemento de matriz por valor en mysql json

Si sabe que nunca hay duplicados en la matriz, puede usar JSON_SEARCH para encontrar la ruta al valor que desea eliminar y luego use JSON_REMOVE para quitarlo Tenga en cuenta que debe verificar que JSON_SEARCH en realidad encuentra un valor, de lo contrario JSON_REMOVE anulará todo el campo:

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

Hice una pequeña demostración en dbfiddle .

Tenga en cuenta que debe usar JSON_UNQUOTE en la respuesta de JSON_SEARCH para que sea una ruta válida para JSON_REMOVE .