我的查询类似于:
SELECT *
FROM qAll
WHERE name not in('Alina,Charaidew,Sukapha')
哪个不行。最好的方法是什么?由于此列表是动态生成的,每次都可能不同。
答案 0 :(得分:4)
Sql server将'Alina,Charaidew,Sukapha'
视为单个Value,这就是为什么没有得到任何结果。
查询应该像..
SELECT *
FROM qAll
WHERE name not in('Alina','Charaidew','Sukapha')
答案 1 :(得分:4)
在CF中,您应该使用cfqueryparam来查询参数。要将列表作为参数传递,应将list属性添加到cfqueryparam。 您的查询应类似于以下内容:
<cfset nameList = "Alina,Charaidew,Sukapha">
<cfquery name="queryName" datasource="#Application.ds#">
SELECT * FROM qAll WHERE name NOT IN (<cfqueryparam cfsqltype="CF_SQL_VARCHAR" list="Yes" value="#nameList#" >)
</cfquery>
答案 2 :(得分:2)
考虑
qAll
是一个查询对象。
'Alina,Charaidew,Sukapha'
代表单个值,因此您需要使用cfqueryparam
的列表attribute
来指定它是一个列表,如:
<cfquery dbtype="query" name="someName">
SELECT *
FROM qAll
WHERE name NOT IN (<cfqueryparam cfsqltype="cf_sql_varchar" value="Alina,Charaidew,Sukapha" list="yes" separator=",">)
</cfquery>
注意: - 这是区分大小写的。
答案 3 :(得分:0)
这里有两个部分:
此致:
SELECT *
FROM qAll
WHERE name not in('Alina,Charaidew,Sukapha')
更正SQL:
SELECT *
FROM qAll
WHERE name not in('Alina','Charaidew','Sukapha')
<cfset names = "Alina,Charaidew,Sukapha">
<cfquery name="queryName" datasource="#Application.ds#">
SELECT * FROM qAll WHERE name NOT IN (<cfqueryparam cfsqltype="CF_SQL_VARCHAR" list="Yes" value="#nameList#" >)
</cfquery>
答案 4 :(得分:-1)
你也可以使用动态qyery ..
-d