sqlite - Phonegapはsql Rand()をサポートしていません。どうすればよいですか?

sqlite random cordova

これに代わるものはありますか?

これは私のコードです

function loadQ() {
   db.transaction(function(t) {
     t.executeSql('SELECT * FROM q ORDER BY RAND()', [], qDataHandler, errorHandler);
   });
};


現在、これは機能しません。 Rand()を削除してLIMIT 1に置き換えれば機能しますが、結果をランダム化したいです。

合計行に対してクエリを実行し、0から合計行までの数値を選択する関数を作成して、その結果をIDとしてloadQで使用することを考えています。しかし、これは退屈な作業だと思います。これについてより良いアイデアがあるかどうか疑問に思っていますか?

どうもありがとう。
答え
ランダムな値をPKとして使用する場合、行にギャップがあると失敗します。

これはより良い解決策です:


行のCOUNT()をクエリします。
0からカウントまでの乱数を生成します
LIMIT 1 OFFSET ?で結果を使用する
関連記事

c# - SQLクエリは、č、ć、š、žなどで始まる都市を検出しません

php - このSQL SELECTステートメントが、挿入したばかりの行を取得しないのはなぜですか?

android - android.database.sqlite.SQLiteException:そのようなテーブルはありません:TableName [重複]

android - AndroidでのSQLiteデータベースの初期化について混乱

android - cmdが自動的に実行されます->シェルコマンドがAndroidのsqliteデータベースを表示します

ruby-on-rails - クエリが正しいにもかかわらず、Activerecordは属性によってモデルを見つけることができません

java - Sqlite接続リスト

android - データベースでclose()が明示的に呼び出されたことはありません

python - Sqliteの高速な行数

sqlite - 2つの同じフィールドデータをdb [HTML5]からフェッチする方法