Как получить случайную запись из базы данных SQLite? - PullRequest
0 голосов
/ 29 мая 2010

Я работаю на PHP. Я работал с MySQL раньше. Вот код, который я использовал -

 $offset_result = mysqli_query($con, " SELECT FLOOR(RAND() * COUNT(*)) AS `offset` FROM students ");
 $offset_row = mysqli_fetch_object( $offset_result );
 $offset = $offset_row->offset;
 $result = mysqli_query($con, " SELECT name FROM students LIMIT $offset, 1 " );      
 $row = mysqli_fetch_row($result);
 mysqli_free_result($result);

Каким будет соответствующий набор операторов для SQLite?

1 Ответ

4 голосов
/ 29 мая 2010

Эти SQL-запросы должны работать в SQLite, если вы просто измените RAND на RANDOM и FLOOR(x) на CAST(x AS INTEGER).

Несколько проще сделать это, упорядочив случайное число:

SELECT name
FROM students
ORDER BY RANDOM()
LIMIT 1

То, как вы это делаете, более эффективно, если стол очень большой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...