SQLinfo.ru - Все о MySQL Фестиваль «Российские интернет-технологии» 2017

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 17.12.2016 17:45:09

serj011
Активист
Зарегистрирован: 22.04.2010
Сообщений: 230

выборка в случайном порядке

Есть вот такой запрос

$result5 = mysql_query("SELECT
`users`.
     `id`,
     `url`,
     `avatar`,
     `nik`,
     `gender`,
     `date_birth`,
     `online`,
     `vip`,
`city`.
     `city$langCity`,
`anketa`.
     `lookfor`,
     `id_user`
FROM
     `users`,
     `city`,
     `anketa`
WHERE
      `users`.`id` = `anketa`.`id_user`
and
      `users`.`time_del_ank` = ''
and
      `users`.`activation` = '1'
and
      (`users`.`id` < 9000 OR `users`.`id` > 11500)
and
    (`online` + 2592000) >= '$time'
and
      `users`.`avatar` NOT LIKE '%avatars%'
and
      `city`.`id` = `users`.`city` ORDER BY `users`.`date` LIMIT 100"
,$db);


Нужно выбрать все точно также, только в случайном порядке. Куда тут нужно вставить RAND()?

Я пробовал
`city`.`id` = `users`.`city` ORDER BY RAND() `users`.`date` LIMIT 100",$db);
Но тогда выбирает в случайном, но не выбирает ORDER BY `users`.`date`
Помогите кто знает

Отредактированно serj011 (17.12.2016 17:56:24)

Неактивен

 

#2 17.12.2016 17:48:26

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3740

Re: выборка в случайном порядке

Поясните подробнее какой порядок нужен. Сначала сортировать по дате, а внутри каждой даты в случайном порядке? Подойдет ли такой вариант? ORDER BY `users`.`date`, RAND()

Неактивен

 

#3 17.12.2016 17:51:03

serj011
Активист
Зарегистрирован: 22.04.2010
Сообщений: 230

Re: выборка в случайном порядке

Такой не подходит, он тогда не сортирует в случайном порядке вообще, а только по дате

Нужно отсортировать по дате и выводить каждый раз в случайном порядке

Неактивен

 

#4 17.12.2016 18:28:35

serj011
Активист
Зарегистрирован: 22.04.2010
Сообщений: 230

Re: выборка в случайном порядке

Ну подскажите кто нибудь пожалуйста

Неактивен

 

#5 17.12.2016 19:07:21

serj011
Активист
Зарегистрирован: 22.04.2010
Сообщений: 230

Re: выборка в случайном порядке

Может это как то по другому можно сделать, нужно вытащить в случайном порядке, но отсортировать по ORDER BY `users`.`date`
т.е. вывести самые старые даты, максимум 100 записей

Отредактированно serj011 (17.12.2016 19:08:32)

Неактивен

 

#6 17.12.2016 21:07:05

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3740

Re: выборка в случайном порядке

Ясно, вам нужно отобрать 100 самых старых записей и отсортировать в случайном порядке. Это только через подзапрос.

SELECT * FROM (SELECT ... ORDER BY users.date LIMIT 100) ORDER BY RAND();

Неактивен

 

#7 17.12.2016 21:19:06

serj011
Активист
Зарегистрирован: 22.04.2010
Сообщений: 230

Re: выборка в случайном порядке

rgbeast, да все верно вы поняли, помогите составить правильный запрос

я вот скрутил так, но не работает

$result5 = mysql_query("SELECT * FROM (SELECT
`users`.
     `id`,
     `url`,
     `avatar`,
     `nik`,
     `gender`,
     `date_birth`,
     `online`,
     `vip`,
     `region`,
`city`.
     `city$langCity`,
`anketa`.
     `lookfor`,
     `id_user`
FROM
     `users`,
     `city`,
     `anketa`
WHERE
      `users`.`id` != '291'
and
      `users`.`id` = `anketa`.`id_user`
and
      `users`.`time_del_ank` = ''
and
      `users`.`activation` = '1'
and
      (`users`.`id` < 9000 OR `users`.`id` > 11500)
and
      (`online` + 2592000) >= '$time'
and
      `users`.`avatar` NOT LIKE '%avatars%'
and
      `city`.`id` = `users`.`city` $region_sql ORDER BY users.date LIMIT 100) ORDER BY RAND();"
,$db);

Неактивен

 

#8 17.12.2016 21:56:29

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3740

Re: выборка в случайном порядке

Какая именно ошибка возникает? Правильный шаблон должен включать алиас для производной таблицы:

SELECT * FROM (SELECT ... ORDER BY users.date LIMIT 100) AS T1 ORDER BY RAND();

Неактивен

 

#9 17.12.2016 22:03:27

serj011
Активист
Зарегистрирован: 22.04.2010
Сообщений: 230

Re: выборка в случайном порядке

rgbeast, большое спасибо за помощь. все получилось)))

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson