SQL IF 语句不起作用 - 无法识别的语句
SQL IF statement not working - unrecognised statement
我正在尝试建立一个记录搜索词的数据库。对于输入的每个搜索词 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
IF
语句必须在存储例程内。如果不是,则无法运行。
如果是SP,请提供Routine declaration,包括DELIMITER
statements。
我正在尝试建立一个记录搜索词的数据库。对于输入的每个搜索词 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
IF
语句必须在存储例程内。如果不是,则无法运行。
如果是SP,请提供Routine declaration,包括DELIMITER
statements。