Выберите случайную строку из клиентской базы данных Safaris - PullRequest
3 голосов
/ 17 августа 2010

Я экспериментирую со встроенной поддержкой SQL в браузере Safari и хочу выбрать случайный запрос через Javascript.

SELECT * FROM questions ORDER BY random()

Возвращает не разрешено использовать функцию: случайно

См. этот снимок экрана .

Есть предложения?

Ответы [ 2 ]

3 голосов
/ 12 июля 2012

Запрос с использованием неслучайного порядка, затем перемешивание результатов:

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

0 голосов
/ 17 августа 2010

Возможно, будет работать что-то вроде следующего:

SELECT *
  FROM (SELECT RANDOM() as RANDOM_NUM, Q.*
          FROM QUESTIONS Q)
  ORDER BY RANDOM_NUM

Поделитесь и наслаждайтесь.

...