查询空值
Query null values
我的实例 table 中有列 deletedTime
。
如果值为空,现在我想检查 ColdFusion。
查询只打印一条记录。
IsNull(test)
正在返回正确的值,
但是 IsNull(searchForDeletedInstances.deletedTime)
returns false
但是值在数据中table null..
<cfquery datasource="hostmanager" name="searchForDeletedInstances">
SELECT deletedTime
FROM instances
WHERE instanceId = <cfqueryparam value="#instanceId#"
cfsqltype="CF_SQL_NVARCHAR">
</cfquery>
<cfloop query="searchForDeletedInstances">
<cfset test= #deletedTime#>
</cfloop>
<cfreturn IsNull(test)>
<cfreturn IsNull(searchForDeletedInstances.deletedTime)>
查询中的空值作为空字符串返回。而是测试 IsDate() 。您始终可以使用 cfdump 显示查询内容,以便查看返回的数据和数据类型。
我会在查询中进行测试。
<cfquery datasource="hostmanager" name="searchForDeletedInstances">
SELECT deletedTime
FROM instances
WHERE instanceId = <cfqueryparam value="#instanceId#" cfsqltype="CF_SQL_NVARCHAR">
AND deletedTime IS NULL
</cfquery>
<cfreturn BooleanFormat(searchForDeletedInstances.recordcount)>
ColdFusion 2018 确实允许 NULL 值,但必须配置 server/site 才能使用它。这可能会破坏很多旧代码。
2018 年之前的 ColdFusion 将使用空字符串作为 NULL 值。
我会更改查询以仅查找 NULL deletedTime 记录。然后使用 searchForDeletedInstances.recordCount 值来确定是否找到了 NULL 记录。代码看起来像这样:
<cfquery datasource="hostmanager" name="searchForDeletedInstances">
SELECT deletedTime
FROM instances
WHERE instanceId = <cfqueryparam value="#instanceId#" cfsqltype="CF_SQL_NVARCHAR">
AND deletedTime IS NULL
</cfquery>
<cfset nullRecord = searchForDeletedInstances.recordCount ? true : false>
<cfreturn nullRecord>
我的实例 table 中有列 deletedTime
。
如果值为空,现在我想检查 ColdFusion。
查询只打印一条记录。
IsNull(test)
正在返回正确的值,
但是 IsNull(searchForDeletedInstances.deletedTime)
returns false
但是值在数据中table null..
<cfquery datasource="hostmanager" name="searchForDeletedInstances">
SELECT deletedTime
FROM instances
WHERE instanceId = <cfqueryparam value="#instanceId#"
cfsqltype="CF_SQL_NVARCHAR">
</cfquery>
<cfloop query="searchForDeletedInstances">
<cfset test= #deletedTime#>
</cfloop>
<cfreturn IsNull(test)>
<cfreturn IsNull(searchForDeletedInstances.deletedTime)>
查询中的空值作为空字符串返回。而是测试 IsDate() 。您始终可以使用 cfdump 显示查询内容,以便查看返回的数据和数据类型。
我会在查询中进行测试。
<cfquery datasource="hostmanager" name="searchForDeletedInstances">
SELECT deletedTime
FROM instances
WHERE instanceId = <cfqueryparam value="#instanceId#" cfsqltype="CF_SQL_NVARCHAR">
AND deletedTime IS NULL
</cfquery>
<cfreturn BooleanFormat(searchForDeletedInstances.recordcount)>
ColdFusion 2018 确实允许 NULL 值,但必须配置 server/site 才能使用它。这可能会破坏很多旧代码。 2018 年之前的 ColdFusion 将使用空字符串作为 NULL 值。
我会更改查询以仅查找 NULL deletedTime 记录。然后使用 searchForDeletedInstances.recordCount 值来确定是否找到了 NULL 记录。代码看起来像这样:
<cfquery datasource="hostmanager" name="searchForDeletedInstances">
SELECT deletedTime
FROM instances
WHERE instanceId = <cfqueryparam value="#instanceId#" cfsqltype="CF_SQL_NVARCHAR">
AND deletedTime IS NULL
</cfquery>
<cfset nullRecord = searchForDeletedInstances.recordCount ? true : false>
<cfreturn nullRecord>