mysql - cfquery maxrows 的 cf10 问题

标签 mysql coldfusion coldfusion-10

我最近将一个应用程序从 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 设置,它运行良好。

同样值得注意的是,该查询有两个外连接。

有没有其他人在迁移到 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>

最佳答案

不确定为什么会这样,但您可能会发现 mySQL LIMIT 子句作为替代。更多信息:http://dev.mysql.com/doc/refman/5.0/en/select.html

关于mysql - cfquery maxrows 的 cf10 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12037988/

相关文章:

php - SQLSTATE[HY093] : Invalid parameter number: parameter was not defined - using greater than operator in SQL

coldfusion - 如何在 ColdFusion 中重命名 Verity 集合?

coldfusion - CF8 与 CF10 : local scope declared in parent not visible in child functions

php - 当 mysqldump 无法创建文件时 shell_exec() 不返回错误

php - 从两个表wordpress中获取列行的总和

php - 如何使用PHP从MYSQL同时获取和显示数据

mysql - ColdFusion 仅返回数据库中的部分字符串

coldfusion - 在 ColdFusion 中,如何确定查询字符串变量是否存在?

for-loop - Adobe ColdFusion 9 分页循环问题

coldfusion - CF10是否支持安全的websocket wss?