sql >> Databáze >  >> RDS >> Mysql

Podmíněné PŘI AKTUALIZACI DUPLIKÁTNÍHO KLÍČE (aktualizace pouze v případě, že platí určitá podmínka)

používáte příkaz IF nesprávně

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);

takže IF zkontroluje podmínku a vrátí jednu ze dvou hodnot poskytnutých jako její parametry. Viz Operátoři řízení toku MySQL .




  1. Souhrnná kliknutí na reklamy a zobrazení

  2. Získejte výsledky dotazu pro časové období

  3. PostgreSQL, kde je vše v poli

  4. Příklady řetězců a čísel Oracle