gpt4 book ai didi

mysql - 如何在 MySQL 中测试 IF 语句?

转载 作者:太空宇宙 更新时间:2023-11-03 11:45:27 24 4
gpt4 key购买 nike

如何在 MySQL 中测试 IF 语句?

我需要知道,当查询进入 IF 语句并且它没有返回任何内容时会发生什么(选择了 0 行)

换句话说,当未选择任何行时,SELECT 查询返回什么?它会返回 NULL 吗?如果是,那么这会引发错误吗? 如果(NULL)那么...?或者在这种情况下,只是 IF 的语句不会执行?


实际上,我有这样一段代码:

IF ( SELECT banned FROM users WHERE id=new.user_id ) THEN 
// do stuff

注意:banned 列包含01

我只想知道,当该查询不返回任何行时,我的代码是否安全?我的意思是它会抛出错误还是什么都不会发生(只是 IF 语句没有执行)


注意到我想自己测试它,但我不知道如何在 MySQL 中测试 IF 语句。例如,我想通过以下代码对其进行测试:

BEGIN
IF ( SELECT banned FROM users WHERE id=new.user_id ) THEN
SELECT 'test';
ENDIF;
END

但是上面的代码甚至没有运行。这就是我问这个问题的原因。

最佳答案

IF 语句可以在 MySQL 存储程序(过程、函数或触发器)的上下文中进行测试。MySQL 不支持匿名 block 。

要测试 IF 语句,您可以创建一个过程

DELIMITER $$

CREATE PROCEDURE foo
BEGIN
IF ( some_condition ) THEN
SELECT 'evaluation of some_condition returned TRUE' AS msg;
ELSE
SELECT 'evaluation of some_condition did NOT return TRUE' AS msg;
END IF;
END$$

DELIMITER ;

CALL foo;

关于mysql - 如何在 MySQL 中测试 IF 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39196626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com