Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Usuń element tablicy według wartości w mysql json

Jeśli wiesz, że w tablicy nigdy nie ma duplikatów, możesz użyć JSON_SEARCH aby znaleźć ścieżkę do wartości, którą chcesz usunąć, a następnie użyj JSON_REMOVE aby go usunąć. Pamiętaj, że musisz sprawdzić, czy JSON_SEARCH faktycznie znajduje wartość, w przeciwnym razie JSON_REMOVE unieważni całe pole:

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

Zrobiłem małe demo na dbfiddle .

Pamiętaj, że musisz użyć JSON_UNQUOTE w odpowiedzi z JSON_SEARCH aby była poprawną ścieżką dla JSON_REMOVE .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak ustawić innodb jako domyślny silnik

  2. Relacja tabeli dla podtypów

  3. BŁĄD 1452 (23000):Nie można dodać lub zaktualizować wiersza podrzędnego:ograniczenie klucza obcego nie powiodło się

  4. Grupuj MySQL według kolejności/priorytetu innej kolumny

  5. ProgrammingError:obiekty SQLite utworzone w wątku mogą być używane tylko w tym samym wątku