IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Как выбрать случайную строку из таблицы MySQL? (https://www.imho.ws/showthread.php?t=109308)

Dr.Dre 07.10.2006 15:52

Как выбрать случайную строку из таблицы MySQL?
 
В базе есть :
id INT auto_increment primary key, text TEXT

Мне нужно выбирать случайну строку из базы.
Я бы сделал так: взял бы минимальное значание в столбце id и максимальное, с помощью функции ПХП получил бы случайное число в пределах этих чисел и получил бы строку с id этого числа, НО номера id идут не подряд. Например я удалял из базы сроку с id 25 и соответственно есть там все номера кроме 25.

Может можно как то средствами MySQL выбрать случайную строку? Или сделать так чтоб auto_increment нумеровал таким образом чтобы небыло пробелов в нумерации из за удаления строк?

Псих 07.10.2006 16:12

Dr.Dre
Не приходит в голову как это сделать на чистом MySQL.

С помощью пхп это выглядит так:
PHP код:

<?
$qr = mysql_query("select * from table");
if($qr){
  $rows = mysql_fetch_assoc($qr);
  mysql_free_result($qr);
  $rand = array_rand($rows);
}
?>

Согласен, что нагрузка намного больше. Но если таблица не большая, можно так.

RaZEr 07.10.2006 16:13

ORDER BY RAND() LIMIT 1

Dr.Dre 07.10.2006 16:22

Биг сэнксы! Всё работает как Razer написал.
Цитата:

ORDER BY RAND() LIMIT 1
Это видать только в ПХП5 добавили...или нет?

Face 07.10.2006 17:24

Dr.Dre
Это в MySQL, а не в PHP

Dr.Dre 07.10.2006 17:46

Ой, ну ясно дело MySQL, спутал.

Hubbitus 10.10.2006 10:03

Нет, не только в 5, это старо как мир, еще в 3.2.хх использовал.


Часовой пояс GMT +4, время: 15:32.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.