imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 07.10.2006, 15:52     # 1
Dr.Dre
Advanced Member
 
Аватар для Dr.Dre
 
Регистрация: 27.10.2002
Пол: Male
Сообщения: 420

Dr.Dre Луч света в тёмном царствеDr.Dre Луч света в тёмном царствеDr.Dre Луч света в тёмном царствеDr.Dre Луч света в тёмном царствеDr.Dre Луч света в тёмном царствеDr.Dre Луч света в тёмном царстве
Question Как выбрать случайную строку из таблицы MySQL?

В базе есть :
id INT auto_increment primary key, text TEXT

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

Может можно как то средствами MySQL выбрать случайную строку? Или сделать так чтоб auto_increment нумеровал таким образом чтобы небыло пробелов в нумерации из за удаления строк?
Dr.Dre вне форума  
Старый 07.10.2006, 16:12     # 2
Псих
::VIP::
Guinness Liker
Понаехало тут
 
Аватар для Псих
 
Регистрация: 26.01.2003
Адрес: В нейроне
Пол: Male
Сообщения: 2 848

Псих СуперБогПсих СуперБог
Псих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБог
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);
}
?>
Согласен, что нагрузка намного больше. Но если таблица не большая, можно так.
__________________
меня не вылечат
Псих вне форума  
Старый 07.10.2006, 16:13     # 3
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
ORDER BY RAND() LIMIT 1
RaZEr вне форума  
Старый 07.10.2006, 16:22     # 4
Dr.Dre
Advanced Member
 
Аватар для Dr.Dre
 
Регистрация: 27.10.2002
Пол: Male
Сообщения: 420

Dr.Dre Луч света в тёмном царствеDr.Dre Луч света в тёмном царствеDr.Dre Луч света в тёмном царствеDr.Dre Луч света в тёмном царствеDr.Dre Луч света в тёмном царствеDr.Dre Луч света в тёмном царстве
Биг сэнксы! Всё работает как Razer написал.
Цитата:
ORDER BY RAND() LIMIT 1
Это видать только в ПХП5 добавили...или нет?
Dr.Dre вне форума  
Старый 07.10.2006, 17:24     # 5
Face
Junior Member
 
Аватар для Face
 
Регистрация: 09.08.2005
Адрес: Свердловская область
Сообщения: 112

Face Известность не заставит себя ждать
Dr.Dre
Это в MySQL, а не в PHP
Face вне форума  
Старый 07.10.2006, 17:46     # 6
Dr.Dre
Advanced Member
 
Аватар для Dr.Dre
 
Регистрация: 27.10.2002
Пол: Male
Сообщения: 420

Dr.Dre Луч света в тёмном царствеDr.Dre Луч света в тёмном царствеDr.Dre Луч света в тёмном царствеDr.Dre Луч света в тёмном царствеDr.Dre Луч света в тёмном царствеDr.Dre Луч света в тёмном царстве
Ой, ну ясно дело MySQL, спутал.
Dr.Dre вне форума  
Старый 10.10.2006, 10:03     # 7
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Нет, не только в 5, это старо как мир, еще в 3.2.хх использовал.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


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




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