MySql触发器 - IF语句中的字符串比较

时间:2010-03-12 20:58:43

标签: mysql

我正在运行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'。知道为什么吗?

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