Как я могу получить случайный порядок возвращаемых строк в запросе MySQL - PullRequest
0 голосов
/ 04 марта 2012

У меня есть запрос MySQL, который возвращает набор строк. Что мне нужно, это получать их в случайном порядке, каждый раз, когда выполняется запрос.

Например, у меня есть запрос

SELECT id,id_banner,name FROM module_banner

И он возвращает мне 3 строки с идентификаторами - 1,2,3

Я хочу получить их в случайном порядке - 3,2,1 2,3,1 1,3,2 и так далее.

Дайте мне знать, если вопрос не ясен

приписка

Есть ли решение без функции RANDOM ()?

Ответы [ 3 ]

4 голосов
/ 04 марта 2012

Вы хотите использовать ORDER BY RAND():

SELECT id,id_banner,name FROM module_banner ORDER BY RAND()
2 голосов
/ 04 марта 2012

Просто добавьте ORDER BY RAND() в конце вашего запроса.

Запрос в целом будет

SELECT field1, field2, ... , field(n) FROM TableName ORDER BY RAND()

В вашем случае это будет

SELECT id, id_banner, name FROM module_banner ORDER BY RAND()

Обновление 1

Во время поиска я нашел одну статью, и вам следует прочитать эту статью: "Не использовать ORDER BY RAND () илиКак получить случайные строки из таблицы? "

0 голосов
/ 04 марта 2012
SELECT id,id_banner,name
  FROM module_banner JOIN
       (SELECT CEIL(RAND() *
                    (SELECT MAX(id)
                       FROM module_banner)) AS id
        ) AS r2
       USING (id);

Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...