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

Fjern array-element efter værdi i mysql json

Hvis du ved, at der aldrig er dubletter i arrayet, kan du bruge JSON_SEARCH for at finde stien til den værdi, du vil slette, og brug derefter JSON_REMOVE at fjerne det. Bemærk, at du skal kontrollere, at JSON_SEARCH finder faktisk en værdi, ellers JSON_REMOVE annullerer hele feltet:

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

Jeg har lavet en lille demo på dbfiddle .

Bemærk, at du skal bruge JSON_UNQUOTE på svaret fra JSON_SEARCH for at gøre det til en gyldig sti for JSON_REMOVE .



  1. FEJL:Fejl 1005:Kan ikke oprette tabel (fejlnr.:121)

  2. En oversigt over logisk replikering i PostgreSQL

  3. Sådan returneres en understreng fra en streng i SQL Server ved hjælp af SUBSTRING()-funktionen

  4. MySQL Store Image BLOB Dårlig praksis ydeevne