Hoo*_*ing 3 sorting coldfusion coldfusion-7
我有一个查询对象,比如返回十五行.出于所有意图和目的,我无法修改生成查询对象的SQL,但我需要按列对此查询对象进行排序.有没有办法在ColdFusion 7中执行此操作而无需借助外部库?
编辑:我应该添加:我对此查询对象运行查询,并ORDER BY
在此查询查询中完成了一个子句.还有另一种方法吗?
ale*_*ale 14
不,查询是您执行此操作的方式.还有其他一些方法可以追踪数据,但它们都是kludgey,并不像QoQ那么简单.
QoQ(也称为内存中查询)的一个强大功能是它可以用于任何返回查询对象的标记返回的查询,例如CFDIRECTORY和CFPOP.
对于想知道如何进行查询查询的人来说,这很简单:
<cfquery name="resortQuery" dbtype="query">
SELECT *
FROM myQueryFromSomewhereElse
WHERE
COLUMN_NAME=<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#myFilterValue#" />
ORDER BY
SOME_OTHER_COLUMN_NAME ASC
</cfquery>
Run Code Online (Sandbox Code Playgroud)
Seb*_*ner 12
即使这个问题已经解决了,我想补充一点,你也可以使用底层的Java方法sort(),它只需要一行,你不需要为此添加UDF.代码将如下所示:
<cfset qQuery.sort(qQuery.findColumn("nameOfSortColumn"), TRUE)>
Run Code Online (Sandbox Code Playgroud)
获取sort列的索引需要findColumn()调用,因为sort()正在使用列索引而不是列名.第二个参数指定排序顺序:TRUE =升序,FALSE =降序.
优点:单线呼叫,比QoQ快
缺点:排序限制为一列
底层Java类有更多隐藏的功能.有关更多信息,请参阅以下链接:
在Lucee(使用4.5和5.2进行测试),这也类似,甚至更简单:
<cfset qQuery.sort("nameOfSortColumn", "asc")>
Run Code Online (Sandbox Code Playgroud)
希望,这给了一些想法......
归档时间: |
|
查看次数: |
10738 次 |
最近记录: |