我被困在mysql问题上。我的例子如下
select * from table where id <= (select id from another_table)
如果 another_table 返回一些数字,但如果值为空怎么办。如果另一个表为空值,我想选择所有记录
IE
(select id from another_table) is null
它应该变成或表现得像
select * from table where
我被困在mysql问题上。我的例子如下
select * from table where id <= (select id from another_table)
如果 another_table 返回一些数字,但如果值为空怎么办。如果另一个表为空值,我想选择所有记录
IE
(select id from another_table) is null
它应该变成或表现得像
select * from table where
您是否尝试过使用该COALESCE
功能?
select * from table where id <= coalesce((select id from another_table), N);
其中“N”是可以存储在“id”列中的最大值,例如2147483647
对于INT
.
将子查询的结果存储在变量中将为您解决问题:
SELECT a.*
FROM table a, (SELECT @id:= (SELECT id FROM another_table LIMIT 1)) c
WHERE @id IS NULL OR id <= @id;
尝试这个:
select @id := (select max(id) from table);
select * from another_table where id
<(case when @id is null then id else @id end)