where条件为null时,如何进行所有选择

时间:2012-08-23 09:35:30

标签: mysql

我遇到了mysql问题。我的例子如下:

select * from table where id <= (select id from another_table)

如果another_table返回一些数字,那么效果很好,但如果值为null则该怎么办。我想在null值的情况下选择所有记录if another_table

(select id from another_table) is null

它应该成为或表现得像

select * from table where

3 个答案:

答案 0 :(得分:1)

您是否尝试过使用COALESCE功能?

select * from table where id <= coalesce((select id from another_table), N);

其中“N”是可以存储在“id”列中的最大值,例如2147483647的{​​{1}}。

答案 1 :(得分:0)

将子查询的结果存储在变量中将为您提供帮助:

SELECT a.*
FROM table a, (SELECT @id:= (SELECT id FROM another_table LIMIT 1)) c
WHERE @id IS NULL OR id <= @id;

答案 2 :(得分:0)

试试这个:

select @id := (select max(id) from table);
select * from another_table where id 
         <(case when @id is null then id else @id end)