8
如何在SQLite中編寫IF EXISTS如下面的查詢所示?我在某處讀到SQL語句中不存在IF子句。什麼會是更好的選擇呢?SQLite中IF存在子句
if exists (select username from tbl_stats_assigned where username = 'abc')
select 1 as uname
else
select 0 as uname
如何在SQLite中編寫IF EXISTS如下面的查詢所示?我在某處讀到SQL語句中不存在IF子句。什麼會是更好的選擇呢?SQLite中IF存在子句
if exists (select username from tbl_stats_assigned where username = 'abc')
select 1 as uname
else
select 0 as uname
只要做到這一點的標準SQL的方式:
select exists(
select 1
from tbl_stats_assigned
where username = 'abc'
);
當然假設你1
和0
實際上是布爾值(SQLite的代表與一個和零就像MySQL的)。
這應該在任何SQL數據庫中工作,有些甚至有特殊的優化來支持該成語。
謝謝你的工作! – thinkster
您將需要一個包含所有用戶名(無論是否已分配)的表(在本例中爲列出所有用戶的表)。您無法獲得結果集中返回的記錄,該值不存在於數據庫某處的某個表中。 –
謝謝拉里。在這裏,我不試圖檢索記錄,只是檢查是否找到了匹配。 – thinkster
然後以任何你用來與數據庫交談的語言對該表執行SELECT語句。檢查返回結果集以確定它是否有行。沒有行表示表中沒有用戶。 –