mysql - 使用 MySQL 赋值运算符的 Coldfusion CFScript 查询

标签 mysql coldfusion assignment-operator cfml

我想选择 currentrow 作为查询的一部分 - 我知道我可以循环查询并获取 currentrow 变量,但我在执行 QoQ 之前使用行,我想保留原始行,例如

//Original query
1, Audi
2, BMW
3, Skoda

//QoQ
1, Audi
3, Skoda

这是我得到的代码:

q = new Query( datasource = application.db.comcar );
q.setSQL('
    SELECT make, @rownum := @rownum +1 AS  `rownumber` 
    FROM cars, ( SELECT @rownum :=0 )
    LIMIT 10
');
r = q.execute().getResult();

但它抛出以下错误:

Parameter '=' not found in the list of parameters specified

SQL: SELECT make, @rownum := @rownum + 1 AS `rownumber` FROM cars, ( SELECT @rownum    :=0 ) LIMIT 10

这将在 cfquery 中工作,但我想在 CFScript 中使用它。是否有替代方法来使用 := 或在查询中转义它的某种方法。

最佳答案

看起来这是 Coldfusion 中的一个错误。我可以更改我的代码以使用 cfquery,但我不想在我的页面中混合使用脚本和标签。

所以我的解决方法如下:

/*
 * based on the existing query 'tmpFields'
 */

// build array of row numbers
arrRowNumbers = [];
cntRowNumbers = tmpFields.recordCount;

for( r = 1; r <= cntRowNumbers; r++ ) {
    arrayAppend( arrRowNumbers, r );
}

// add a new column with the new row number array
queryAddColumn( tmpFields, "fieldNumber", "integer", arrRowNumbers );

关于mysql - 使用 MySQL 赋值运算符的 Coldfusion CFScript 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17191530/

相关文章:

mysql - 18 个月内没有新记录的患者返回

php - 使用 php 在 SlickGrid 中保存更改

mysql - 如何使用sql server从excel获取数据

sql - Coldfusion 从第二个数据源获取数据

jakarta-ee - ColdFusion web.xml?

c++ - C++运算符的继承

C++: "T a = b"-- 复制构造函数还是赋值运算符?

查询中的 PHP 变量不起作用

mysql - 使 API (Wordpress) 日期可与 Coldfusion 一起使用

c++ - 对于重载的静态成员函数没有可行的重载 '='