选择IF语句,MySQL

时间:2010-12-15 19:26:51

标签: mysql stored-procedures variables if-statement

我正在尝试在My MySQL存储过程中执行类似的操作:

if val > SELECT numericalValue FROM table where userId=theUserId then ..

这样做是否可以,或者我是否必须将numericalValue存储在临时?

2 个答案:

答案 0 :(得分:2)

您可以在if语句中使用select语句。

它必须在括号中,并且每次必须评估为单行,因此它适用于总和和计数,如果要返回字段的值,则需要使用LIMIT 1

您也可以使用一个也可以使用的变量。

答案 1 :(得分:1)

您不应该这样做,但如果您打算在代码中的其他地方重复使用这些选择,那么它会更方便。

此外,您应该使用以下语法作为指导:

CREATE PROCEDURE sp_condition(IN var1 INT) 
BEGIN 
 IF (val > SELECT numericalValue FROM table where userId='theUserId')  
  THEN SELECT 'greater'; 
  ELSE SELECT 'less than or equal'; 
 END IF; 
END|