在MySQL中,如果条件有效,我将使用IF运算符返回“ YES”,如果条件无效则返回“ NO”
SELECT IF(500<1000, "YES", "NO"); //RETURNS YES
如果条件无效,我什么也不愿返回。我怎样才能做到这一点? 我尝试使用NULL,但它只会返回NULL
SELECT IF(1500<1000, "YES",NULL); //RETURNS NULL
如何获得空白行?
答案 0 :(得分:3)
只需返回一个空字符串
/* 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希望使用nothing to be returned。我们可以在IF
子句中检查相同的WHERE
条件是否为不为空。请尝试以下操作:
/* Returns nothing if condition dont match */
SELECT IF(1500<1000, 'YES', '')
FROM test_table
WHERE IF(1500<1000, 'YES', '') <> '';
答案 1 :(得分:0)
您总是可以用检查变量的条件来包装它,以确定是否不应返回任何内容。
select * from (select 3 > 4 as result) as result
where result > 0;
答案 2 :(得分:0)
尝试在MySQL中使用HAVING()
运算符:
SELECT *
FROM (
SELECT IF(500<1000, "YES", "NO")
)
subq HAVING (500<1000);
WHERE
当然是我会尝试的第一件事,但是由于这似乎是原则的证明,而不是真正的选择查询,因此,HAVING()
对于组函数更有用,如果您使用的是一个(例如COUNT()
)。
答案 3 :(得分:0)
如果您根本不需要任何行,则只需写:
select 'Yes'
from dual
where 1500 < 1000