最近、アプリケーションをcf9からcf10に移動しました
maxrowsが設定されているクエリを実行すると、次のエラーが発生します。
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=1000' at line 1
クエリはcf9とcf8で正常に実行されます。
少し遊んでみると、cf10がクエリの前に付いているように見えますがOPTION SQL_SELECT_LIMIT=1000;
、mySQLはそれを認識しません。クエリからmaxrows設定を削除すると、正常に実行されます。
また、クエリには2つの外部結合があります。
cf10に移行したときに、他の誰かが同様の問題を経験しましたか?
アドバイスをよろしくお願いします
これが完全なクエリです
<cfquery name="details" datasource="#Application.ds#" maxrows="#arguments.maxrows#">
SELECT b.booking_id,
DATEDIFF(b.check_out,b.check_in) as nights,
b.package_id,
b.beds_cot,
b.date_booked,
b.beds_king,
b.status,
b.tstamp as booking_tstamp,
g.ext_ref_id as guest_ext_ref_id,
g.title,
g.first_name,
g.surname,
g.full_name,
g.tstamp as guest_tstamp,
r.room_id,
r.ext_ref_id as room_ext_ref_id,
r.name as room_name,
r.description as room_description,
p.package_id,
p.ext_ref_id as package_ext_ref_id,
p.name as package_name,
p.description as package_description,
p.date_start as pacakge_date_start,
p.date_end as package_date_end
FROM guest_booking as b
JOIN guest as g
LEFT JOIN room as r ON b.room_id = r.room_id
LEFT JOIN packages as p on b.package_id = p.package_id
WHERE b.provider_id = #arguments.provider_id#
and b.guest_id = g.guest_id
<cfif isdefined("arguments.status")>
and b.status = #arguments.status#
</cfif>
<cfif isdefined("arguments.booking_id")>
and b.booking_id = #arguments.booking_id#
</cfif>
ORDER BY #arguments.order_by#
</cfquery>