変数文字列に対して LIKE 条件を実行するクエリのクエリがあります。
変数に一重引用符を含む単一の単語が含まれている場合、一部の結果が返されますが、すべてではありません。
<cfset _myVar = "Women's" />
<cfquery name="_qData" dbtype="Query">
SELECT
ID
FROM MyQoQ
WHERE NAME LIKE '%#_myvar#%'
OR DESCRIPTION LIKE '%#_myvar#%'
</cfquery>
変数に複数の単語が含まれ、それらの単語の 1 つに一重引用符が含まれている場合、レコードは返されません。
<cfset _myVar = "Women's Initiative" />
<cfquery name="_qData" dbtype="Query">
SELECT
ID
FROM MyQoQ
WHERE NAME LIKE '%#_myvar#%'
OR DESCRIPTION LIKE '%#_myvar#%'
</cfquery>
PreserveSingleQuotes()
変数を でラップするだけでなく、無駄に試しましCFQUERYPARAM
たが、同じ結果が得られます。
これを機能させる方法はありますか?
再現ケースへの追加
<cfset myQuery = queryNew('hello')>
<cfset queryAddRow(myQuery,5)>
<cfset querySetCell(myQuery,"hello","what up",1)>
<cfset querySetCell(myQuery,"hello","what's up",2)>
<cfset querySetCell(myQuery,"hello","what's up friends",3)>
<cfset querySetCell(myQuery,"hello","what u",4)>
<cfset querySetCell(myQuery,"hello","what",5)>
<cfdump var="#myQuery#">
<cfquery name="res" dbtype="query">
SELECT *
FROM myQuery
WHERE hello LIKE <cfqueryparam cfsqltype="cf_sql_varchar" value="%$what's up%">
</cfquery>
<cfdump var="#res#">
Railo 4.1.1.009 - 両方の結果を返します (行 2 と 3) ColdFusion 10,0,13,287689 - 結果を返しません SQL を
WHERE hello LIKE '%what''s up%'
まだ結果が出ない