我遇到了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
答案 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)