SQL IF语句不起作用 - 无法识别的语句
问题描述:
我试图设置一个记录搜索项的数据库。对于每一个搜索词输入的SQL检查搜索词是否存在,如果不把它插入一个新的记录,如果是真的就更新现有场SQL IF语句不起作用 - 无法识别的语句
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
。
答
IF
声明必须位于存储例程中。如果不是这样,它就不能工作。
如果是在SP中,请提供例程声明,包括DELIMITER
声明。
你错过了''''检查它 – Sami
道歉,这是一个错误粘贴在这里的代码,我已经更新它,并且错误保持不变 – djmcdee
这看起来更像是我的T-SQL(MS SQL Server)语法。 https://mariadb.com/kb/en/mariadb/if-statement/检查IF语法的文档? – Jeremy