我想這SQL
查詢工作:ORDER BY RANDOM()在科爾多瓦/ PhoneGap的
"SELECT * FROM people WHERE gender='female' ORDER BY val, RANDOM();"
但是,我得到了以下錯誤:
E/SQLiteLog: (1) not authorized to use function: random
是否有相當於辦法做這個?如果可能的話只用一個查詢。
我讀到Cordova/Phonegap - SQLite禁用RANDOM()
函數,因爲它花費了大量內存,並創建了臨時表,但該表最多有800行,結果被WHERE
過濾。
編輯: 我曾嘗試使用下面的函數 弄亂的結果,但後來我得到一個錯誤!
function shuffle(array) {
var counter = array.length,
temp, index;
// While there are elements in the array
while (counter > 0) {
// Pick a random index
index = Math.floor(Math.random() * counter);
// Decrease counter by 1
counter--;
// And swap the last element with it
temp = array[counter];
array[counter] = array[index];
array[index] = temp;
}
return array;
}
var resultArray = [];
for (var x = 0; x < results.rows.length; x += 1) {
resultArray.push(results.rows.item(x));
}
var res = shuffle(resultArray);
for (var i = 0; i < res.rows.length; i++) {
name = (res.rows.item(i).name);
}
錯誤:
Uncaught TypeError: Cannot read property 'length' of undefined
謝謝!
如果你有那麼幾行,爲什麼不把它們隨機放入內存中? –
如何通過「val」首先進行排序,然後將它們隨機存儲在內存中? – candlejack
@JoachimIsaksson我添加了更多的代碼,請檢查它! – candlejack