2012-06-22 4 views
0

Я использую UNION для объединения трех запросов в один результат. Для одного из запросов я хочу рандомизировать их размещение в «главной таблице», а остальные 2 запроса не будут выполняться. Подобно ранжированию рекламных мест в группе продуктов. Я мог бы сделать это с PHP легко, но мне интересно, есть ли простой способ MySQL.Рандомизировать определенные результаты из таблицы с UNION

Возможно ли это как можно?

+0

Чтобы уточнить, сделать вы имеете в виду, что из 'Query1 UNION Q2 UNION Q3' вы хотите, чтобы порядок набора результатов был всем из Q1 вместе, а затем все из Q2 вместе, а строки из Q3 перемежались по всем строкам из Q1 и Q2? Если бы вы могли добавить простой пример, это было бы полезно. – Wiseguy

ответ

1

Это может быть трудный путь, но вы можете добавить столбец «случайного числа» в таблицу, которую вы хотите рандомизировать, и заполнить ее RAND(), - и затем вы можете заказать эту таблицу этим столбцом.

Вы могли бы даже сказать SELECT *, RAND() AS sortorder FROM mytable ORDER BY sortorder ASC, но если честно, я не уверен, что будет работать, и у меня нет сервера MySQL на моей текущей рабочей станции, чтобы попробовать :)

+0

Отличная идея, я попробую. – adamzwakk

Смежные вопросы