В основном у меня есть база слов,
Эта база данных содержит идентификатор строки (первичный ключ), слово и длину слова в виде столбцов таблицы.
Я хочу выбрать случайную строку, где длина = х и получить слово в этой строке.
Это для игрового проекта для iPhone, и для него очень важно, чтобы запросы выполнялись как можно быстрее (поиски выполнялись в игре).
Например:
SELECT * FROM WordsDB WHERE >= (abs(random()) %% (SELECT max(rowid) FROM WordsDB)) LIMIT 1;
Этот запрос действительно быстр при выборе случайной строки намного быстрее, чем ORDER BY RANDOM () LIMIT 1, однако, если я добавлю длину слова в запрос, я получу проблемы:
SELECT * FROM WordsDB WHERE length = 9 AND rowid >= (abs(random()) %% (SELECT max(rowid) FROM WordsDB)) LIMIT 1
Предположительно, потому что случайная строка не всегда будет иметь длину 9.
Мне было просто интересно, что будет самым быстрым / наиболее эффективным способом сделать это.
Спасибо за ваше время
Примечание: символы 2%, потому что они находятся в цели c, а запрос задан в виде строки.