我正在試驗Safari瀏覽器中內置的SQL支持,並且我想通過Javascript選擇一個隨機查詢。從Safaris客戶端數據庫中選擇隨機行
SELECT * FROM questions ORDER BY random()
返回未經授權使用的功能:隨機
有什麼建議嗎?
我正在試驗Safari瀏覽器中內置的SQL支持,並且我想通過Javascript選擇一個隨機查詢。從Safaris客戶端數據庫中選擇隨機行
SELECT * FROM questions ORDER BY random()
返回未經授權使用的功能:隨機
有什麼建議嗎?
也許像下面將工作:
SELECT *
FROM (SELECT RANDOM() as RANDOM_NUM, Q.*
FROM QUESTIONS Q)
ORDER BY RANDOM_NUM
分享和享受。
感謝您的回覆,但奇怪的是我再次得到相同的錯誤。未經授權使用功能:隨機 這是一個安全問題? – user422644 2010-08-17 10:53:14
@ user422644 - 聽起來確實如此。有趣的是,SQLite站點的這個頁面(http://www.sqlite.org/omitted.html)表示GRANT和REVOKE不受支持,所以我不確定如何解決這個問題。希望我能提供更多的想法。 – 2010-08-17 11:12:00
另一種方法是在我得到它們後洗牌結果。 \t \t db.transaction( \t \t \t功能(事務){ \t \t \t \t \t transaction.executeSql( \t \t \t \t \t \t 'SELECT * FROM問題', \t \t \t \t \t \t [] , \t \t \t \t \t \t功能(交易,結果){ \t \t \t \t \t \t \t //最好洗牌的結果和循環的方式? \t \t \t \t \t \t}, \t \t \t \t \t \t的ErrorHandler \t \t \t \t \t); \t \t \t}, \t \t \t transactionErrorHandler \t \t); – user422644 2010-08-17 11:21:30
查詢使用非隨機的順序,然後洗牌的結果:
tx.executeSql('SELECT * FROM questions',[], function(tx, resultSet) {
var resultArray = [];
for(var i=0; i < resultSet.rows.length; i+=1) {
resultArray.push(resultSet.rows.item(i));
}
var shuffledArray = shuffle(resultArray);
// do something with the shuffled array...
});
凡shuffle()
可能是這樣的:https://stackoverflow.com/a/962890/490560
這個工作適合我!謝謝! – candlejack 2014-03-28 18:42:06
或者,包含下劃線並使用'_.shuffle()'或甚至'_。樣品()';後者給你一個給定長度的隨機結果。 – pduersteler 2014-10-05 14:58:39
Safari網頁SQL存儲使用SQLite HTTP://www.sqlite。 org/ – Joey 2010-08-17 09:10:55