在mysql的if条件下如何不返回任何内容?

lsmepo6l  于 2021-06-20  发布在  Mysql
关注(0)|答案(4)|浏览(284)

在mysql中,如果条件有效,我使用if操作符返回“yes”,如果条件无效,则返回“no”

SELECT IF(500<1000, "YES", "NO"); //RETURNS YES

如果条件无效,我不想退货。我该怎么做?我试过使用null,但它只返回null

SELECT IF(1500<1000, "YES",NULL); //RETURNS NULL

我怎么能得到一个空行?

nhjlsmyf

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 子句不能为空。请尝试以下操作:

/* Returns nothing if condition dont match */
SELECT IF(1500<1000, 'YES', '')  
FROM test_table 
WHERE IF(1500<1000, 'YES', '') <> '';
uubf1zoe

uubf1zoe2#

尝试使用 HAVING() mysql中的运算符:

SELECT *
FROM (
    SELECT IF(500<1000, "YES", "NO")
)
subq HAVING (500<1000);
``` `WHERE` 这当然是我首先要尝试的,但由于这似乎是一个原则的证明,而不是一个真正的选择查询, `HAVING()` 如果使用组函数(例如 `COUNT()` ).
nwlqm0z1

nwlqm0z13#

如果您根本不想要行,那么只需写下:

select 'Yes'
from dual
where 1500 < 1000
yyhrrdl8

yyhrrdl84#

您总是可以用检查变量的条件来 Package 它,以确定是否应该返回任何内容。

select * from (select 3 > 4 as result) as result
where result > 0;

相关问题