我正在尝试在My MySQL存储过程中执行类似的操作:
if val > SELECT numericalValue FROM table where userId=theUserId then ..
这样做是否可以,或者我是否必须将numericalValue
存储在临时?
答案 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|