在CFWheels中,我正在查看findAll()页面,并且它有一个分组选项,因为它没有“拥有子句”选项。有没有办法在CFWheels中使用findAll()使用having子句。
答案 0 :(得分:0)
非常令人失望的是,即使在新版本CFWheels 1.4.2
中也无法对分组数据进行动态过滤。
我发现的是this issue,这是cfwheels google group和a google group discussion下发布的一个非常老的问题。即使到今天,在having
语句中使用group by
的解决方法是使用cfrel dumphreys这是一个ColdFusion关系代数框架。
我建议尝试一下,它非常易于使用且写得干净利落。如果您导航到cfrel.cfc
,您会发现findAll()
功能与cfwheels中的原始findAll()
类似(查看\ wheels \ model \ read.cfm ),但你会发现它支持having()
开箱即用。
示例(cfrel having子句):
/*
SQL: SELECT productId, SUM(total) AS totalSum FROM orders
GROUP BY productId HAVING SUM(total) > ?
ORDER BY totalSum DESC LIMIT 5
PARAMS: [1000]
*/
myOrdersRel = relation(datasource="cfrel")
.select("productId,SUM(total) AS totalSum")
.from("orders")
.group("productId")
.having("SUM(total) > ?", [1000])
.order("totalSum DESC")
.limit(5);
query2 = rel2.query();