IN operator not working

2 views
Skip to first unread message

marc

unread,
Nov 18, 2009, 8:13:14 AM11/18/09
to transfer-dev
Hi,

Maybe I overlook something but I can't get past this one

If I do this

cfset local.query = "SELECT CMS.text.text, CMS.group.title">
<cfset local.query &= " FROM CMS.text">
<cfset local.query &= " JOIN CMS.group">
<cfset local.query &= " JOIN Language.language">
<cfset local.query &= " JOIN CMS.status">
<cfif arguments.multiple eq "True">
<cfset local.query &= " WHERE CMS.group.title IN(:testA)">
<cfelse>
<cfset local.query &= " WHERE CMS.group.title=:group">
</cfif>
[.. more TQL...]

I get 1 record

If I do this

cfset local.query = "SELECT CMS.text.text, CMS.group.title">
<cfset local.query &= " FROM CMS.text">
<cfset local.query &= " JOIN CMS.group">
<cfset local.query &= " JOIN Language.language">
<cfset local.query &= " JOIN CMS.status">
<cfif arguments.multiple eq "True">
<cfset local.query &= " WHERE CMS.group.title IN(:testB)">
<cfelse>
<cfset local.query &= " WHERE CMS.group.title=:group">
</cfif>
[.. more TQL...]

I get another record

If I do this

cfset local.query = "SELECT CMS.text.text, CMS.group.title">
<cfset local.query &= " FROM CMS.text">
<cfset local.query &= " JOIN CMS.group">
<cfset local.query &= " JOIN Language.language">
<cfset local.query &= " JOIN CMS.status">
<cfif arguments.multiple eq "True">
<cfset local.query &= " WHERE CMS.group.title IN(:testAB)">
<cfelse>
<cfset local.query &= " WHERE CMS.group.title=:group">
</cfif>
[.. more TQL...]

I get NO records

testA,testB,testAB:

<cfset local.qTransferObject.setParam("testAB","'A','B'","List")>
<cfset local.qTransferObject.setParam("testA","A","String")>
<cfset local.qTransferObject.setParam("testB","B","String")>

I tried this:
<cfset local.qTransferObject.setParam("testAB","'A','B'","String")>
<cfset local.qTransferObject.setParam("testAB","A,B","List")>
<cfset local.qTransferObject.setParam("testAB","A B","List")>
<cfset local.qTransferObject.setParam("testAB","'A' 'B'","List")>
<cfset local.qTransferObject.setParam("testAB","'A''B'","List")>

makes no difference

Executing a <cfquery> where I substitute values for testAB as in

SELECT texts.text
FROM texts
inner join groups ON texts.FK_group = groups.id
inner join languages ON texts.FK_language = languages.id
inner join status ON texts.FK_status = status.id
WHERE groups.title IN ( 'A','B' ) AND

gives me 2 records, so the problem must be with the use of the IN
operator

The Transfer docs say:

"For example, if your using a mappedParameter statement within your
TQL script, it could look something like: select from post.Post where
post.Post.IDPost IN ( :idpostList ). From there you would be setting
the mappedParameter via the query object, most likely with the 'list'
argument set to true. "

What am I doing wrong?

Thanks,
Marc

marc

unread,
Nov 18, 2009, 8:23:07 AM11/18/09
to transfer-dev
<cfset local.qTransferObject.setParam("testAB","A,B","String","True")>

Thanks,

Marc
Reply all
Reply to author
Forward
0 new messages