我想创建一个 SQL 查询,如果特定列中存在特定值,则该查询将返回 True;如果不是,那么它将返回 False。
我知道我可以创建类似'SELECT something FROM somewhere WHERE something'
. 在这种情况下,我不想选择任何东西,只是为了检查。
我的问题是我该怎么做。
我想创建一个 SQL 查询,如果特定列中存在特定值,则该查询将返回 True;如果不是,那么它将返回 False。
我知道我可以创建类似'SELECT something FROM somewhere WHERE something'
. 在这种情况下,我不想选择任何东西,只是为了检查。
我的问题是我该怎么做。
您可以使用以下IIf
功能:
SELECT IIf(something = 'Some value', True, False) FROM somewhere;
在 Access 中,您可以使用DCount
表达式来计算something字段包含'some value'的行数。这是从立即窗口复制的示例:
Debug.Print DCount("*", "somewhere", "something='some value'")
1
Debug.Print DCount("*", "somewhere", "something='BOGUS'")
0
您可以调整它以在计数大于零时为您提供 True,或者在计数为零时为您提供 False:
Debug.Print (DCount("*", "somewhere", "something='some value'") > 0)
True
Debug.Print (DCount("*", "somewhere", "something='BOGUS'") > 0)
False
如果您想从查询中执行此操作,则此查询将返回 -1 表示 True,返回 0 表示 False:
SELECT (DCount("*", "somewhere", "something='some value'") > 0) AS value_exists;
或者您可以使用Format
表达式将这些值显示为字符串:"True" ; 或“假”:
SELECT Format(DCount("*", "somewhere", "something='some value'") > 0, 'True/False') AS value_exists;
顾名思义,DLookup 就是为此:
SomevalueExists = Not IsNull(DLookup("Id", "somewhere", "somefield = somevalue"))
尝试这个:
select case when x is null then false else true end
from (select max(somecol) x
from sometable
where somecol = somevalue) a
只需使用
select count(*) from tableName where columnName = '$variableInput';
如果您打算重用它,您不妨将其作为一个准备好的语句,您可以通过您设计的任何接口调用它以使用您的数据库。例如,如果返回值大于零,您就知道它是真的
if(preparedStatement($variableInput)>0)
{
$flag = true;
}
else
{
$flag = false;
}