我试图了解如何在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
我该如何纠正错误?
答案 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(如果只是想要检查是否重复)
您可以在此处查看详细信息: