mysql中的If..then语句
我有一个带有一个名为paramType(INT)的参数的存储过程 我想知道有没有办法在mysql中实现下一种情况:mysql中的If..then语句,mysql,if-statement,stored-procedures,Mysql,If Statement,Stored Procedures,我有一个带有一个名为paramType(INT)的参数的存储过程 我想知道有没有办法在mysql中实现下一种情况: BEGIN SELECT Code, Price, Type FROM table IF paramType IS NOT NULL THEN WHERE Type = paramType ELSE SELECT Code, Price Type FROM table END; 所以,如果paramType为null(空),则只需执行从表中选择code、Price、Type,
BEGIN
SELECT Code, Price, Type FROM table
IF paramType IS NOT NULL THEN
WHERE Type = paramType
ELSE
SELECT Code, Price Type FROM table
END;
所以,如果paramType为null(空),则只需执行从表中选择code、Price、Type
,但如果paramType包含值,则执行查询,条件如下:
SELECT Code, Price Type FROM table WHERE Type = paramType
或者没有if/then/else还有其他解决方案吗?以下是更优雅的写作方式:
SELECT Code, Price, Type
FROM table
WHERE paramType IS NULL OR Type = paramType
以下是更优雅的写作方式:
SELECT Code, Price, Type
FROM table
WHERE paramType IS NULL OR Type = paramType
它应该使用和操作员?想想看@YeWin因为OR operator Type=paramType总是会这样,这就是问题所在,如果它的
NULL
,所有记录都应该返回,否则->Type=paramType
@YeWin。你是对的,如果它为NULL,所有记录都会返回,+1,它应该使用AND operator?想想看@YeWin因为或运算符Type=paramType将始终执行这一点,如果其NULL
,则应返回所有记录,否则->Type=paramType
@YeWin。您是对的,如果为NULL,则将返回所有记录,+1,