次の Coldfusion/MySQL クエリで何が起こっているのかを理解しようとしていますが、更新する必要があります (CF/MySQL を使い始めて 1 か月目です)。
検索の前にクエリを実行しています。これにより、変数pl (pricelists) が次のように設定されます。
<cfif variables.module IS "yes">
<cfquery datasource="ds" name="qp">
<!--- selects pricelist and seller --->
</cfquery>
<cfset variables.pl = "LEFT JOIN pricelist p ON ">
<cfoutput query="qp" >
<cfif qp.preislist IS ''>
<cfset variables.pl= variables.pl & '(p.iln = a.iln AND p.preislist = "AAA" AND p.ean = a.ean AND p.iln = "#qp.seller#") OR '>
<cfelse>
<cfset variables.pl= variables.pl & '(p.iln = a.iln AND p.preisliste = "#qp.preislist#" AND p.ean = a.ean AND p.iln = "#qp.seller#") OR '>
</cfif>
</cfoutput>
<cfset variables.pl = variables.preislisten & "(1=0)">
</cfif>
これは検索クエリに「移植」され、次のように混乱を招きます。
<cfquery datasource="ds" name="getArt">
SELECT a.* <cfif variables.module IS "yes">, p.ek, p.vk, p.waehrung, p.onlinepreis</cfif>
FROM artdata a
<cfif variables.module IS "yes">
<cfqueryparam cfsqltype="cfsql_varchar" value="#variables.pl#">
</cfif>
....
多くの質問: - qp.seller などのフィールドをcfparam
クエリする必要はありませんか、それともありますか? - artdata AS a の
ように常に ALIAS を使用するのではなく、artdata aのみを使用するべきではありませんか?
- p.ek、p.vk、...をこのように選択できますか? ただし、pricelist テーブルは後で変数variables.plを介してのみ宣言されます( LEFT JOIN pricelist p ON ...)
- どうしたのですか? 1=0)? その目的は何ですか?(3=2)、(1=2) のディト。
啓発をありがとう!