在mysql中,如果条件有效,我使用if操作符返回“yes”,如果条件无效,则返回“no”
SELECT IF(500<1000, "YES", "NO"); //RETURNS YES
如果条件无效,我不想退货。我该怎么做?我试过使用null,但它只返回null
SELECT IF(1500<1000, "YES",NULL); //RETURNS NULL
我怎么能得到一个空行?
nhjlsmyf1#
只返回一个空字符串
/* Returns YES because condition is true */ SELECT IF(500<1000, 'YES', ''); /* Returns blank (empty string) because condition is false */ SELECT IF(1500<1000, 'YES', '');
编辑:很显然,op不想归还任何东西。我们可以检查一下 IF 中的条件 WHERE 子句不能为空。请尝试以下操作:
IF
WHERE
/* Returns nothing if condition dont match */ SELECT IF(1500<1000, 'YES', '') FROM test_table WHERE IF(1500<1000, 'YES', '') <> '';
uubf1zoe2#
尝试使用 HAVING() mysql中的运算符:
HAVING()
SELECT * FROM ( SELECT IF(500<1000, "YES", "NO") ) subq HAVING (500<1000); ``` `WHERE` 这当然是我首先要尝试的,但由于这似乎是一个原则的证明,而不是一个真正的选择查询, `HAVING()` 如果使用组函数(例如 `COUNT()` ).
nwlqm0z13#
如果您根本不想要行,那么只需写下:
select 'Yes' from dual where 1500 < 1000
yyhrrdl84#
您总是可以用检查变量的条件来 Package 它,以确定是否应该返回任何内容。
select * from (select 3 > 4 as result) as result where result > 0;
4条答案
按热度按时间nhjlsmyf1#
只返回一个空字符串
编辑:很显然,op不想归还任何东西。我们可以检查一下
IF
中的条件WHERE
子句不能为空。请尝试以下操作:uubf1zoe2#
尝试使用
HAVING()
mysql中的运算符:nwlqm0z13#
如果您根本不想要行,那么只需写下:
yyhrrdl84#
您总是可以用检查变量的条件来 Package 它,以确定是否应该返回任何内容。