sql >> データベース >  >> RDS >> Mysql

重複キー更新の条件付き(特定の条件が真の場合にのみ更新)

    IFステートメントを誤って使用しています

    INSERT INTO userlist (username, lastupdate, programruncount, ip)
    VALUES (:username, NOW(), 1, :ip)
    ON DUPLICATE KEY UPDATE
    lastupdate = IF(lastupdate > NOW() - INTERVAL 20 MINUTE, NOW(), lastupdate),
    programruncount = IF(lastupdate > NOW() - INTERVAL 20 MINUTE, programruncount + 1,   programruncount),
    ip = IF(lastupdate > NOW() - INTERVAL 20 MINUTE, :ip, ip);
    

    したがって、IFは条件をチェックし、パラメーターとして提供された2つの値のいずれかを返します。 MySQLのフロー制御演算子 を参照してください。 。




    1. SQL Serverで時間を比較するにはどうすればよいですか?

    2. Django+MySQL-管理サイト-ユーザーの追加-OperationalError-SAVEPOINTが存在しません

    3. 基本的なOracleトリガー監査テーブル

    4. MariaDBでのELT()のしくみ