 |
 |
Форум сетевых администраторов » Базы данных » MySQL » Random запрос
| Автор |
| Тема |
 |
|
 |
|
|
|
Участник+
Зарегистрирован: Sep 2002
Место проживания:
Публикаций: 106
Статус:  |
хочется random запрос. чтонибудь типа ...
SELECT field1, field2 FROM table WHERE (здесь условие) and field1=random();
тоесть выбрать случайную запись, отвечающую определенному условию
возможно ли такое одним запросом, а то приходится в скрипте генерировать случайное число и проверять существует ли такая запись
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
07-04-2003 06:16 |
|
|
Участник+
|
| Попробуй ORDER BY RAND() LIMIT 1 в запрос дописать и... |
[сооб. #40329]
07-04-2003 10:07 |
|
|
Сибиряк
|
Randomize It
http://www.sensationdesigns.com/products/scripts/randomizeit.php?view=demo... |
[сооб. #41053]
15-04-2003 22:53 |
|
Сибиряк


Зарегистрирован: Sep 2002
Место проживания: Новосибирск
Публикаций: 1255
Статус:  |
Randomize It
http://www.sensationdesigns.com/products/scripts/randomizeit.php?view=demo
__________________
Международное брачное агенство в Сибири.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
15-04-2003 22:53 |
|
|
Участник+
|
[QUOTE]Первоначальное сообщение от Tagore
[B]Randomize... |
[сооб. #41064]
16-04-2003 05:09 |
|
Участник+
Зарегистрирован: Sep 2002
Место проживания:
Публикаций: 106
Статус:  |
quote: Первоначальное сообщение от Tagore
Randomize It
это к чему ?
quote: Первоначальное сообщение от Nevermind
Попробуй ORDER BY RAND() LIMIT 1 в запрос дописать и будет тебе случайная запись.
помогло, именно то что хотел
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
16-04-2003 05:09 |
|
|
Участник+
|
| А нет способа "полегче"? Т.е. как я понимаю вся... |
[сооб. #61961]
02-03-2004 14:43 |
|
Участник+


Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: ![he][es в оф-лайне](images/offline.gif) |
А нет способа "полегче"? Т.е. как я понимаю вся таблица сотируется (что ресурсоемко) а потом выбирается 1ая строка... Ничего проще нет?
__________________
Админ - вождь Апачей...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
02-03-2004 14:43 |
|
|
Модератор
|
| Для больших таблиц можно сначала count(*), а потом... |
[сооб. #61963]
02-03-2004 15:17 |
|
|
Модератор
|
| Получаешь количество строк, например 3000. Генеришь... |
[сооб. #61995]
03-03-2004 05:05 |
|
Модератор


Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус:  |
Получаешь количество строк, например 3000. Генеришь число от 1 до 3000, например 250. Выбираешь строчку LIMIT 250,1
__________________
The time was broken ...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
03-03-2004 05:05 |
|
|
Участник+
|
| RaZEr а он выбирает не по id а просто по порядковому... |
[сооб. #61998]
03-03-2004 07:24 |
|
Участник+


Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: ![he][es в оф-лайне](images/offline.gif) |
RaZEr а он выбирает не по id а просто по порядковому номеру?
Т.е. не по примари кей, а просто по счёту?
__________________
Админ - вождь Апачей...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
03-03-2004 07:24 |
|
|
Участник+
|
RaZEr я прочитал сначала этот F**king manual 
[quote]Выражение... |
[сооб. #62009]
03-03-2004 11:26 |
|
Участник+


Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: ![he][es в оф-лайне](images/offline.gif) |
RaZEr я прочитал сначала этот F**king manual 
quote: Выражение LIMIT может использоваться для ограничения количества строк, возвращенных командой SELECT. LIMIT принимает один или два числовых аргумента. Ð_ти аргументы должны быть целочисленными константами. Если заданы два аргумента, то первый указывает на начало первой возвращаемой строки, а второй задает максимальное количество возвращаемых строк. При этом смещение начальной строки равно 0 (не 1): Для совместимости с PostgreSQL MySQL также поддерживает синтаксис LIMIT # OFFSET #.
mysql> SELECT * FROM table LIMIT 5,10; # возвращает строки 6-15
Для того, чтобы выбрать все строки с определенного смещения и до конца результата, вы можете использовать значение -1 в качестве второго параметра:
mysql> SELECT * FROM table LIMIT 95,-1; # Retrieve rows 96-last.
Если задан один аргумент, то он показывает максимальное количество возвращаемых строк:
mysql> SELECT * FROM table LIMIT 5; # возвращает первых 5 строк
Другими словами, LIMIT n эквивалентно LIMIT 0,n.
и просто уточнить хотел... не очень внятно написано...
__________________
Админ - вождь Апачей...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
03-03-2004 11:26 |
|
|
Модератор
|
| Нормально написано, пока никто не жаловался... |
[сооб. #62011]
03-03-2004 12:02 |
|
|
Участник+
|
| RaZEr да ладно, уже всё понял. Спасибо! Хоть... |
[сооб. #62025]
03-03-2004 14:49 |
|
Участник+


Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: ![he][es в оф-лайне](images/offline.gif) |
RaZEr да ладно, уже всё понял. Спасибо! Хоть число запросов и увеличилось (с 4х до 6ти) зато время выполнения скрипта (у меня лок. серв. ХÐ_2500+,256МбDDRPC3200), уменьшилось с 0,04-5 до 0,02 сек.!!! Помоему это много!
__________________
Админ - вождь Апачей...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
03-03-2004 14:49 |
|
|
Модератор
|
| Наверно все-таки число запросов увеличилось... |
[сооб. #62027]
03-03-2004 14:55 |
|
|
Участник+
|
RaZEr нет. Считать я умею...
У меня 2 ф-ии... |
[сооб. #62028]
03-03-2004 17:05 |
|
|
|
Формат времени GMT. Текущее время 11:53.
|
Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения. |
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
|
|
|
|
| |
Page generated in 0.01278591 seconds (54.11% PHP - 45.89% MySQL) with 26 queries.
|
 |