sql >> Databasteknik >  >> RDS >> Mysql

Ta bort arrayelement efter värde i mysql json

Om du vet att det aldrig finns dubbletter i arrayen kan du använda JSON_SEARCH för att hitta sökvägen till värdet du vill ta bort och använd sedan JSON_REMOVE för att ta bort den. Observera att du måste kontrollera att JSON_SEARCH hittar faktiskt ett värde, annars JSON_REMOVE kommer att annullera hela fältet:

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

Jag har gjort en liten demo på dbfiddle .

Observera att du måste använda JSON_UNQUOTE på svaret från JSON_SEARCH för att göra det till en giltig sökväg för JSON_REMOVE .



  1. Hur man jämför två tabeller i MySQL

  2. Vid dubblettnyckeluppdatering - flera kolumner

  3. Använda spåra kausalitet för att förstå frågekörning

  4. Kan inte logga in med skapad användare i mysql