MySQL - 如果查询返回错误

标签 mysql sql if-statement

我想要一个如下所示的 if 查询。

set @i=1;
set @j=2;
if @i < @j then select * from test limit 1;
end if;

我收到以下错误,

1064 (42000): 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 @i < @j then select * from test limit 1' at line 1

也在程序中尝试过这个,

DELIMITER $$
DROP PROCEDURE IF EXISTS test $$
create procedure test ()
set @i=1;
set @j=2;
if @i < @j then select * from test limit 1;
end if;
END $$


ERROR 1064 (42000): 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 @i < @j then select * from test limit 1;
end if;
END' at line 1

谁能帮我解决这个问题吗?

最佳答案

您需要一个开始:

DELIMITER $$
DROP PROCEDURE IF EXISTS test $$
create procedure test ()
begin
    set @i=1;
    set @j=2;
    if @i < @j then
         select * from test limit 1;
    end if;
END $$

DELIMITER ;

你的第一个不起作用,因为 if 只允许在编程 block 中使用。事实上,这就是为什么你的版本也不起作用——如果没有 beginif 就不在编程 block 中。

关于MySQL - 如果查询返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46984327/

相关文章:

mysql - 将同一数据库中不同表中的数量和金额相乘

ios - if 语句取决于计时器

excel - 将文件另存为上一个工作日的日期

asp.net-mvc - 表单发布后如何在我的 View 中检查 TempData 值?

mysql - 在使用 JOOQ 时如何最好地检索具有相关表项的记录?

mysql - 将 Excel 电子表格或 CSV 中的数据导入 MySQL

MySQL - 从结果中排除所有被阻止的用户

mysql - 使用多个连接优化查询

php - 内部连接错误

PHP SQL 查询自动完成