Mysql
 sql >> база данни >  >> RDS >> Mysql

JSON Вмъкнете в MySQL таблица или актуализирайте, ако съществува

Следният скрипт може да бъде полезен за вашите изисквания:

INSERT INTO `TAG_COUNTER`
  (`account`, `time_id`, `counters`)
VALUES
  ('google', '20180510', '{"gmail_page_viewed": 1, "search_page_viewed": 50}'),
  ('google', '20180510', '{"gmail_page_viewed": 1, "search_page_viewed": 50}'),
  ('google', '20180511', '{"gmail_page_viewed": 1, "search_page_viewed": 100}'),
  ('google', '20180511', '{"gmail_page_viewed": 1, "search_page_viewed": 100}'),
  ('google', '20180511', '{"gmail_page_viewed": 1, "search_page_viewed": 100}')
ON DUPLICATE KEY UPDATE `counters` =
  JSON_SET(`counters`,
           '$."gmail_page_viewed"',
           IFNULL(`counters` ->> '$."gmail_page_viewed"', 0) + 1,
           '$."search_page_viewed"',
           IFNULL(`counters` ->> '$."search_page_viewed"', 0) + 1
  );

Вижте dbfiddle .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL заявка, MAX() + GROUP BY

  2. Мога ли да използвам подготвен израз на PDO, за да обвържа идентификатор (име на таблица или поле) или ключова дума за синтаксис?

  3. MySql избира стойност по подразбиране, ако няма резултати?

  4. Как да посочите родителското поле на заявка от подзаявка в MySQL?

  5. Защо SELECT ... WHERE id =a връща резултат, ако стойността е 0