![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 1 Всего: 360 |
Допустим даны записи. Я хочу выбрать определённое количество несколько случайных, но в порядке времени добавления.
допустим мне нужно 4 записи из: а 2007-04-17 12:12:12 б 2007-04-17 12:12:13 в 2007-04-17 12:12:14 г 2007-04-17 12:12:15 д 2007-04-17 12:12:16 е 2007-04-17 12:12:17 если писать RAND(),date, то порядок сбивается, а если писать date,RAND(), то выходят ессно подряд, потому что дата везде разная. Как разумно и просто сделать это?
так сработает, но количество записей может быть меньше заданного. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 1 Всего: 360 |
А без вложенных не получится? Мне почему то показалось, что они медленновато работают..
|
|||
|
||||
GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: нет Всего: 32 |
Akina, разве в mysql есть поддержка вложенных запросов?
-------------------- ![]() ![]() |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Тебе нужно определенное количество записей. Это LIMIT. Который отбирает указанное количество записей в указанной сортировке (если ее нет - используется сортировка по первичному ключу, если я не ошибаюсь). А тебе нужно одновременно и сортировку по дате, и выборку случайных дат. Противоречие, и значит 2 запроса, вложенных. Можно, я проигнорирую этот вопрос? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
SamDark |
|
|||
![]() Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 1 Всего: 38 |
GZep,
Есть. -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 1 Всего: 360 |
Проблем вот в чём... Допустим у меня выборка из полтора миллиона записей и мне надо только пять записей из неё в случайном порядке взять.
Если сделать ORED BY RAND() получится естественно полный капут... |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
sergejzr, а ты что хотел? чтобы выбрать 5 из полутора миллионов - по-любому надо отсортирить по рандому...
Но я могу тебе предложить другой вариант - сгенери в своем скрипте (РНР или что у тебя там) 5 случайных чисел в нужном диапазоне (1-1500000) и сделай 5 отдельных селектов по основному ключу
где N - сгенеренное тобой очередное случайное число. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
SergeBS |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 2 Всего: 22 |
sergejzr,
Из таблицы - в другую записываешь N (сколько надо) записей случайно выбирая ID. Затем из новой таблицы выбираешь все записи, сортируя по времени. Почти как у Akina, только ID = твоему random. Т.е. 5 раз
Как 5 random получить - смотри сам как удобнее. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
SergeBS, Где гарантия, что ID не содержит "дырок"? в которые ты можешь попасть при особой удаче...
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
SergeBS |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 2 Всего: 22 |
Akina,
Ну я же не знаю всех условий. Это всего лишь направление - как по-моему можно сделать легко и быстро. Там еще может за компанию оказаться ограничение типа "записи не древнее 1 года" и т.п., например. Я не телепат. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Это как раз в принципе не влияет ни на твой, ни на мой запрос. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |