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

行が存在する場合にMySQLテーブルを更新する最速の方法、それ以外の場合は挿入。 2つ以上の一意でないキー

    INSERT...ON DUPLICATE KEY UPDATEを使用するだけです

    INSERT INTO reports_adv (day, uid, siteid, cid, visits) 
    VALUES ('$day', '$uid', '$sid', '$cid', 1)
    ON DUPLICATE KEY UPDATE visits=visits+1;
    

    ただし、何よりもまず、UNIQUEを定義する必要があります 列の制約。

    ALTER TABLE reports_adv  ADD CONSTRAINT tb_uq UNIQUE (day, uid, siteid, cid)
    



    1. mysqldumpのベストプラクティス:パート2 –移行ガイド

    2. mysqlの日付とdate_formatの比較

    3. Mac OS LionのコマンドラインからMySQLサーバーを起動するにはどうすればよいですか?

    4. SQL ServerでのROW_NUMBER()のしくみ