PhoneGap не поддерживает sql Rand (), что делать? - PullRequest
2 голосов
/ 11 октября 2011

Есть ли альтернатива этому?

Это мой код

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

Теперь это не работает.Это работает, если я удаляю Rand () и заменяю его на LIMIT 1. Но я хочу, чтобы результат был рандомизированным.от 0 до общего количества строк, а затем использовать результат в моем loadQ в качестве идентификатора.Но я думаю, что это утомительная работа.Интересно, есть ли у вас лучшие идеи для этого?

большое спасибо.

1 Ответ

2 голосов
/ 11 октября 2011

Если вы используете случайное значение в качестве PK, произойдет сбой, если в ваших строках будут пропуски.

Вот лучшее решение:

  1. Запрос на COUNT () строк.

  2. Генерация случайного числа от 0 до счета

  3. Используйте результат в LIMIT 1 OFFSET ?

...