Форум сетевых администраторов Страницы (2): [1] 2 »
Показаны 16 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- MySQL (http://netadmin.ws/forum/forumdisplay.php?forumid=40)
-- Random запрос (http://netadmin.ws/forum/showthread.php?threadid=5028)


Помещено Afina 07-04-2003 в 06:16:

Random запрос

хочется random запрос. чтонибудь типа ...

SELECT field1, field2 FROM table WHERE (здесь условие) and field1=random();
тоесть выбрать случайную запись, отвечающую определенному условию
возможно ли такое одним запросом, а то приходится в скрипте генерировать случайное число и проверять существует ли такая запись


Помещено Nevermind 07-04-2003 в 10:07:

Попробуй ORDER BY RAND() LIMIT 1 в запрос дописать и будет тебе случайная запись.


Помещено Tagore 15-04-2003 в 22:53:

Randomize It
http://www.sensationdesigns.com/products/scripts/randomizeit.php?view=demo

__________________
Международное брачное агенство в Сибири.


Помещено Afina 16-04-2003 в 05:09:

quote:
Первоначальное сообщение от Tagore
Randomize It

это к чему ?
quote:
Первоначальное сообщение от Nevermind
Попробуй ORDER BY RAND() LIMIT 1 в запрос дописать и будет тебе случайная запись.

помогло, именно то что хотел


Помещено he][es 02-03-2004 в 14:43:

А нет способа "полегче"? Т.е. как я понимаю вся таблица сотируется (что ресурсоемко) а потом выбирается 1ая строка... Ничего проще нет?

__________________
Админ - вождь Апачей...


Помещено RaZEr 02-03-2004 в 15:17:

Для больших таблиц можно сначала count(*), а потом LIMIT offset,1

__________________
The time was broken ...


Помещено he][es 02-03-2004 в 21:29:

RaZEr можно поподробнее...

__________________
Админ - вождь Апачей...


Помещено RaZEr 03-03-2004 в 05:05:

Получаешь количество строк, например 3000. Генеришь число от 1 до 3000, например 250. Выбираешь строчку LIMIT 250,1

__________________
The time was broken ...


Помещено he][es 03-03-2004 в 07:24:

RaZEr а он выбирает не по id а просто по порядковому номеру?
Т.е. не по примари кей, а просто по счёту?

__________________
Админ - вождь Апачей...


Помещено RaZEr 03-03-2004 в 07:32:

RTFM

__________________
The time was broken ...


Помещено he][es 03-03-2004 в 11:26:

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.

и просто уточнить хотел... не очень внятно написано...

__________________
Админ - вождь Апачей...


Помещено RaZEr 03-03-2004 в 12:02:

Нормально написано, пока никто не жаловался

__________________
The time was broken ...


Помещено he][es 03-03-2004 в 14:49:

RaZEr да ладно, уже всё понял. Спасибо! Хоть число запросов и увеличилось (с 4х до 6ти) зато время выполнения скрипта (у меня лок. серв. ХÐ_2500+,256МбDDRPC3200), уменьшилось с 0,04-5 до 0,02 сек.!!! Помоему это много!

__________________
Админ - вождь Апачей...


Помещено RaZEr 03-03-2004 в 14:55:

Наверно все-таки число запросов увеличилось с 5 до 6 ...

__________________
The time was broken ...


Помещено he][es 03-03-2004 в 17:05:

RaZEr нет. Считать я умею...
У меня 2 ф-ии должны выбирать случ. строки

__________________
Админ - вождь Апачей...


Формат времени GMT. Текущее время 11:51. Страницы (2): [1] 2 »
Показаны 16 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.