とランダム行を選択するには、基本的に私は客観C - SQLiteは別の値
このデータベースは、行ID(主キー)、テーブルの列として単語と単語の長さが含まれている、単語のデータベースを持っています。
長さ= xのランダムな行を選択して、その行の単語を取得したいとします。
これはiPhoneゲームプロジェクトのためのもので、できるだけ早くクエリを実行することが最優先です(検索はゲームで行われます)。例えば
:
SELECT * FROM WordsDB WHERE >= (abs(random()) %% (SELECT max(rowid) FROM WordsDB)) LIMIT 1;
このクエリは、私がクエリに単語の長さを追加した場合しかし、私は問題を取得し、RANDOM()LIMIT 1 BYはるかに高速ORDERよりランダムな行を選択するには本当に速いです:ランダムな行は常に9
の長さを持っていないので、おそらく私はこれを行うの最速/最も効率的な方法だろうと思いまし
SELECT * FROM WordsDB WHERE length = 9 AND rowid >= (abs(random()) %% (SELECT max(rowid) FROM WordsDB)) LIMIT 1
。お時間を
おかげ
注:それはObjective Cの中で、クエリ文字列として設定されているため、2%記号です。
問題点は何ですか? – hamstergene