如果我的复选框被选中,如何在活动元素中显示?
How to show in Active elements if my check box is checked?
我在解决这个问题时遇到了问题。在我的 where 子句中,我有一个逻辑,它只给我 table 中的活动字段。但我想如果我的复选框被选中以给我活动和非活动元素。我该如何解决?是否可以将 cfif 放在 where 子句或其他方式周围?这是我的查询:
SELECT Date, Name, Time, Active
Case when Active = 1 then 'Yes' else 'No' end as Active
FROM City
<cfif form.ActiveCheck GT 0>
WHERE Active = 0
</cfif>
ORDER BY Date DESC
这是我的复选框代码:
<input type="Checkbox" name="ActiveCheck" id="ActiveCheck" value="0" unchecked>All<br>
如果我没理解错的话,您不想在勾选复选框时按查询中的活动列进行过滤?为此,您需要执行以下操作:
<cfquery name="myQ">
SELECT Date, Name, Time, Active
Case when Active = 1 then 'Yes' else 'No' end as Active
FROM City
<cfif !structKeyExists(form, "ActiveCheck")>
<!--- checkbox is not ticked so just get inactive --->
WHERE Active = <cfqueryparam value="0" cfsqltype="cf_sql_integer">
</cfif>
ORDER BY Date DESC
</cfquery>
....
<input type="Checkbox" name="ActiveCheck" id="ActiveCheck" value="0">All<br>
这类似于 John 的回答,但我不喜欢 <cfquery>
里面的 <cfif>
。我希望数据库服务器的查询计划尽可能少。 注意: IIF() 是一种老式方法。
<cfquery name="myQ">
DECLARE @Active bit = <cfqueryparam value="#IIF(stuctkeyExists(form, 'activecheck'), 1, 0)#" cfsqltype="cf_sql_bit">
SELECT Date, Name, Time, Active,
Case when Active = 1 then 'Yes' else 'No' end as Active
FROM City
WHERE @ActiveCheck = 0
OR (@ActiveCheck = 1 AND Active = 1)
ORDER BY Date DESC
</cfquery>
我在解决这个问题时遇到了问题。在我的 where 子句中,我有一个逻辑,它只给我 table 中的活动字段。但我想如果我的复选框被选中以给我活动和非活动元素。我该如何解决?是否可以将 cfif 放在 where 子句或其他方式周围?这是我的查询:
SELECT Date, Name, Time, Active
Case when Active = 1 then 'Yes' else 'No' end as Active
FROM City
<cfif form.ActiveCheck GT 0>
WHERE Active = 0
</cfif>
ORDER BY Date DESC
这是我的复选框代码:
<input type="Checkbox" name="ActiveCheck" id="ActiveCheck" value="0" unchecked>All<br>
如果我没理解错的话,您不想在勾选复选框时按查询中的活动列进行过滤?为此,您需要执行以下操作:
<cfquery name="myQ">
SELECT Date, Name, Time, Active
Case when Active = 1 then 'Yes' else 'No' end as Active
FROM City
<cfif !structKeyExists(form, "ActiveCheck")>
<!--- checkbox is not ticked so just get inactive --->
WHERE Active = <cfqueryparam value="0" cfsqltype="cf_sql_integer">
</cfif>
ORDER BY Date DESC
</cfquery>
....
<input type="Checkbox" name="ActiveCheck" id="ActiveCheck" value="0">All<br>
这类似于 John 的回答,但我不喜欢 <cfquery>
里面的 <cfif>
。我希望数据库服务器的查询计划尽可能少。 注意: IIF() 是一种老式方法。
<cfquery name="myQ">
DECLARE @Active bit = <cfqueryparam value="#IIF(stuctkeyExists(form, 'activecheck'), 1, 0)#" cfsqltype="cf_sql_bit">
SELECT Date, Name, Time, Active,
Case when Active = 1 then 'Yes' else 'No' end as Active
FROM City
WHERE @ActiveCheck = 0
OR (@ActiveCheck = 1 AND Active = 1)
ORDER BY Date DESC
</cfquery>