ユーザーの入力に一致する最初の 2 つのレコードと、データベース全体で一致するレコードの総数を返す関数を ColdFusion で作成しています。関数はオートコンプリートのフィードに使用されるため、速度/効率が最大の関心事です。たとえば、関数が input を受け取った場合、次を"bl"
返す可能性があります。{sampleMatches:["blue", "blade", "blunt"], totalMatches:5000}
速度を上げるために単一のクエリでこれを実行しようとしましたが、最終的には次のようになりました。
select record, count(*) over ()
from table
where criteria like :criteria
and rownum <= :desiredCount
このソリューションの問題は、count(*) over ()
常に の値を返すことです:desiredCount
。ここで私のものと同様の質問を見ましたが、私のアプリには一時テーブルを作成する権限がありません。それで、1回のクエリで私の問題を解決する方法はありますか? それを解決するより良い方法はありますか?ありがとう!