MySQL:如果此ip没有任何记录,请插入

Zal*_*oza 2 php mysql sql

我用:

INSERT INTO `rating` (`name`, `user`, `rating`, `section`, `ip`)
VALUES ('$name', '{$_SESSION['user']}', '$rate', '$section',
        '{$_SERVER['REMOTE_ADDR']}');";
Run Code Online (Sandbox Code Playgroud)

我想在IF语句中添加一个if条件,以便.

IF SELECT ip from rating 
where ip={$_SERVER['REMOTE_ADDR']} AND section=$section AND name=$name 
then update ELSE INSERT new row
Run Code Online (Sandbox Code Playgroud)

它是可行的还是我在PHP中更好地编码?非常感谢你

Ps:我知道如何使用php,我想用MySQL学习它.

另外我要求所有3个名字,部分,ip不仅匹配ip

Eri*_*lje 6

假设您在ip,section和name上有唯一约束(UNIQUE索引或PRIMARY KEY),则可以使用以下语法:

INSERT INTO `rating` (`name`, `user`, `rating`, `section`, `ip`)
VALUES ('$name', '{$_SESSION['user']}', '$rate', '$section', '{$_SERVER['REMOTE_ADDR']}')
ON DUPLICATE KEY UPDATE user = VALUES(user), rating = VALUES(rating);
Run Code Online (Sandbox Code Playgroud)