如何在SQL中使用IF

时间:2014-12-22 07:05:43

标签: mysql sql

我试图了解如何在SQL中使用if(在mySql中)。

我写了这个源代码:

$query = "
IF NOT EXISTS(SELECT * FROM sec WHERE CHROM='1' AND POS='2')
    INSERT INTO sec (CHROM, POS) VALUES ('1','2')
END IF
";
mysqli_query($config, $query) or die('Eror: ' . mysqli_error($config));

我收到了这个错误:

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF NOT EXISTS(SELECT * FROM sec WHERE CHROM='1' AND POS='2') INSERT INTO se' at line 1

我该如何纠正错误?

3 个答案:

答案 0 :(得分:1)

这里不需要IF。你可以这样做:

INSERT IGNORE INTO sec (CHROM, POS) VALUES ('1','2')

IGNORE关键字将告诉mySql将重复键错误视为警告。

答案 1 :(得分:1)

如果您真的想使用IF语句,请回答您的问题:

IF NOT EXISTS(SELECT * FROM sec WHERE CHROM='1' AND POS='2')
BEGIN
    INSERT INTO sec (CHROM, POS) VALUES ('1','2')
END

答案 2 :(得分:0)

除了IF语句之外,还有2个更好的选择:

- > ON DUPLICATE KEY UPDATE(如果您要插入另一个值)

- > INSERT IGNORE(如果只是想要检查是否重复)

您可以在此处查看详细信息:

"INSERT IGNORE" vs "INSERT ... ON DUPLICATE KEY UPDATE"