結果セットがランダムな順序でエンティティロードを行うにはどうすればよいですか?
もしそうならentityload("modelName")
、どのようにソート順を設定して、呼び出すたびにランダムに異なるようにしますか?
どうもありがとう
結果セットがランダムな順序でエンティティロードを行うにはどうすればよいですか?
もしそうならentityload("modelName")
、どのようにソート順を設定して、呼び出すたびにランダムに異なるようにしますか?
どうもありがとう
簡単に言えば、entityLoad() では非常に難しいということです。ただし、HQL を使用すると、実際にはそれほど悪くはありません。
ほとんどの DB 言語にはランダム関数があります。したがって、組み込みのアート テーブルとエンティティを使用して、ormExecuteQuery を使用して結果を生成できます。
<cfscript>
hql = " SELECT DISTINCT artName
FROM art
ORDER BY RANDOM() ";
results = ormExecuteQuery(hql);
for( art in results ) {
writeOutput(art & "<br/>");
}
</cfscript>
null レコードは返されないため、毎回ランダムな結果セットが得られます。
これが役立つことを願っています^__^
私が使用したもう 1 つの方法は、テーブル (およびモデル) に sortOrder 列を作成し、ランダムにデータを入力する関数を作成することです。おそらく jCaito のオプションほど効率的ではありませんが、いくつかの利点がありました。
public function getRandom(){
randomizer();
return entityload("provider", {}, "sortOrder");
}
private void function randomizer(){
source = entityload("provider");
for(i=1;i<=ArrayLen(source);i++){
source[i].setSortOrder(randRange(1,999));
}
}