Случайная строка из базы sqlite
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Случайная строка из базы sqlite - 2007-01-07 06:23:54.323333
|
|
|
Kasper_WPS
Сообщений: 9
Оценки: 0
Присоединился: 2005-09-03 13:45:00
|
Подскажите плиз, как случайным образом выдернуть строку из таблицы в sqlite? И еще вопрос как определить количество строк в таблице того же sqlite, конструкции sqlite_query('SELECT * FROM table WHERE 1'); - не подходят, слишком долго работают…
|
|
|
RE: Случайная строка из базы sqlite - 2007-01-07 15:26:42.550000
|
|
|
deniska
Сообщений: 25
Оценки: 0
Присоединился: 2006-12-08 21:02:11.436666
|
Попробуй так: $res = sqlite_query("SELECT count(*) FROM table"); - считаем кол-во строк $kolvo_strok = sqlite_fetch_single($res); $random_row = rand(0, $kolbo_strok); - генерируем случайный номер строки $sql_query_rand_row = "SELECT * FROM table LIMIT ".$randow_row.", 1"; sqlite_query($sql_query_rand_row); Все равно будет не очень быстро. Чтобы ускорить нужно знать структуру твоей таблицы. Если есть primary key (INT) - и все значения сгенерированы по порядку (т.е. никогда не удалялись записи из таблицы), тогда последний запрос по primary key делаем, например: "SELECT * FROM table WHERE id = ".$randow_row
|
|
|
RE: Случайная строка из базы sqlite - 2007-01-07 15:58:18.853333
|
|
|
Kasper_WPS
Сообщений: 9
Оценки: 0
Присоединился: 2005-09-03 13:45:00
|
Спасибо! Понял. Лучше ввести еще одну таблицу с инкриментом и декриментом при записи или удалении.
|
|
|
|
|