我有一张像这样的桌子:
create table myTab(
id integer primary key,
is_available boolean not null default true
);
我需要做一个查询,只返回第一个遇到的is_available
设置为假的行。
我有一张像这样的桌子:
create table myTab(
id integer primary key,
is_available boolean not null default true
);
我需要做一个查询,只返回第一个遇到的is_available
设置为假的行。
就像是
select *
from myTab
where not is_available
order by id asc
limit 1
试试这个..
select id,is_available from myTab
where is_available = false
order by id asc
limit 1
如果您想从最后插入的行开始,请使用此 ..
select id,is_available from myTab
where is_available = false
order by id desc
limit 1
或者,您可以使用NOT EXISTS
查找第一个元组,在大多数情况下,这也是最快的解决方案:
SELECT *
FROM myTab mt
WHERE mt.is_available = False
AND NOT EXISTS (
SELECT *
FROM myTab nx
WHERE nx.is_available = False
AND nx.id < mt.id
);