Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql中的If..then语句_Mysql_If Statement_Stored Procedures - Fatal编程技术网

mysql中的If..then语句

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,

我有一个带有一个名为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
,但如果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,