我正在使用 ColdFusion 10。
我有一个无法更改的查询。我无法更改 SQL。该查询是从多个地方调用的,包括 ajax。我只能触摸从结果集中输出的内容。
我需要随机化当前结果集中新产品的顺序。新产品将始终排在第一位。我将一次输出最多 50 个产品。可以有多达50个新产品。所以,结果集永远不会很大,比如一百万行。
假设我当前的结果集如下所示:
ProductID, IsNew
1 T
2 T
3 T
4 F
5 F
6 F
我的目标是随机化新产品并将旧产品保留在现有订单中。因此,我的新结果集可能如下所示:
ProductID, IsNew
3 T
1 T
2 T
4 F
5 F
6 F
我的想法是遍历结果,找到新产品(总是首先列出),将它们添加到列表中,随机化列表,然后以某种方式操纵结果集以使用随机列表。有点像这样:
// create empty list
NewProductsList = "";
// loop through results and add new products to list
NewProductsList = "1,2,3";
// randomize list of new products
NewProductsList = "3,1,2";
我的想法是使用 queryAddRow() 和 querySetCell() 函数来重写结果。有没有办法在输出时使用 ColdFusion 来操纵结果集的顺序?