我正在运行mysql 5.0并创建了一个触发器。大致如下:
SET @temp =(SELECT STATEMENT);
IF(@temp = 'true') THEN
-code block 1-
ELSE
-code block 2-
END IF;
当我单独运行select语句时,它返回'true'但是在上面的代码中正在执行'code block 2'。知道为什么吗?
答案 0 :(得分:0)
如果你的select语句返回一个布尔值,那么这应该有效:
SET @temp =(SELECT STATEMENT);
IF(@temp = true) THEN
-code block 1-
ELSE
-code block 2-
END IF;
答案 1 :(得分:0)
看起来@temp包含的方式不仅仅是'true'。没有任何附加信息,这似乎应该重写,所以你不是在搜索字符串。但是,这可能是您正在寻找的(如果'true'在返回字符串中):
IF (INSTR(@temp, 'true') > 0) THEN
-code block 1-
ELSE
-code block 2-
END IF