我正在尝试建立一个记录搜索词的数据库。对于输入的每个搜索词,SQL 检查搜索词是否存在,如果不存在,则插入一条新记录,如果为真,则更新现有字段
IF (NOT EXISTS (SELECT * FROM searchmetrics WHERE keyword = 'keyword'))
BEGIN
INSERT INTO searchmetrics(id, name, metric)
VALUES('', 'keyword', '1')
END
ELSE
BEGIN
UPDATE searchmetrics
SET metrics = metrics + 1
WHERE name = 'keyword'
END
我收到以下错误:
Unrecognized statement type. (near "IF" at position 0)
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
我仔细检查了语法,我认为它是正确的,IF 语句在 SQL 控制台中也以红色突出显示,但似乎是唯一的。谁能告诉我哪里出错了?
最佳答案
对于 MariaDB,IF
和 IF()
具有不同的语义。当您实际使用 IF()
时,您似乎想使用 IF
。
关于SQL IF 语句不起作用 - 无法识别的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41170260/