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语句。检查返回结果集以确定它是否有行。没有行表示表中没有用户。 –