SQL IF 语句不起作用 - 无法识别的语句

标签 sql database mariadb

我正在尝试建立一个记录搜索词的数据库。对于输入的每个搜索词,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,IFIF() 具有不同的语义。当您实际使用 IF() 时,您似乎想使用 IF

关于SQL IF 语句不起作用 - 无法识别的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41170260/

相关文章:

mysql - 在不断更新数据库中维护排名顺序

python - 有没有办法根据特定单元格的值选择不同的东西?

mysql - Microsoft Access 和 MYSQL 数据类型比较

mysql - SQL InitCap表示一些特殊单词大写

MySQL - 合并具有相同键的行的列值

mysql - 闲逛网站的数据库设计

mysql - 同一个外键在表中出现两次

mysql - MariaDB 创建表 SQL 错误 : 1170

mysql (mariadb) 按两列排序不起作用

mysql - 我是否在我的 SQL 语句中运行了太多子查询?