【发布时间】:2013-09-27 08:47:17
【问题描述】:
在我的一个数据库表中,我想知道是否有至少一条记录对应于一个条件。
我写的查询是 Count(*) from table where (condition) 在我的程序中,我可以检查结果是否为非零值。 它工作正常。
我们如何优化它?我不想等到它找到符合条件的记录总数。
【问题讨论】:
标签: sql optimization count
在我的一个数据库表中,我想知道是否有至少一条记录对应于一个条件。
我写的查询是 Count(*) from table where (condition) 在我的程序中,我可以检查结果是否为非零值。 它工作正常。
我们如何优化它?我不想等到它找到符合条件的记录总数。
【问题讨论】:
标签: sql optimization count
SQL 有exists 可用于此目的。如果查询返回结果,则返回 1,否则返回 0。
Select Case When Exists (<query>) Then 1 Else 0 End as X
【讨论】:
SELECT TOP 1 1 AS found
FROM tablename
WHERE ...
然后检查查询是否返回单行。
在这种情况下,引擎会在找到第一行后立即返回结果(假设您没有添加ORDER BY)
【讨论】:
SqlCommand command = new SqlCommand("SELECT * FROM InsertProductTb", con);
SqlDataAdapter da = new SqlDataAdapter(command);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
}
【讨论】: