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. クエリフィールドの最後の文字でグループを選択

    2. PHP:mysql_connectがFALSEを返さない

    3. '/var/run/mysqld/mysqld.sock'に接続できません

    4. ORA-29285の解決方法:ファイル書き込みエラー