Я работаю над отображением страницы объявлений в строках таблицы. Проблема, которую я пытаюсь решить, состоит в том, чтобы расположить объявления таким образом, чтобы уменьшить количество пробелов на странице, сохраняя при этом случайный порядок.
Диаграмма того, как выглядит пара неупорядоченных объявлений:
_______________ __________________
ad text here. | another ad here
this ad has | (2)
more text than | [ unwanted
that ad. (1) | white-space ]
_______________|__________________
Что я хотел бы сделать, так это упорядочить результаты по char_length, а также рандомизировать результаты в группах по 2, 3 или что-то еще.
Теперь у меня есть запрос: SELECT * FROM ads ORDER BY CHAR_LENGTH(adtext) limit $page, $ads_per_page (с использованием PHP)
Это дает мне результаты, которые выглядят так:
_______________ ___________________
short ad. (1) | another short ad. (2)
_______________|___________________
ad that's a (3)| another little
little longer. | longer ad. (4)
_______________|___________________
ads keep (5) | this ad has the
getting longer | most text out of
in char_length | all the ads... (6)
Это отлично подходит для уменьшения пробелов, но мне все еще нужно рандомизировать эти результаты. Возможно ли в MySQL затем рандомизировать эти результаты в группы по 2, 3 или что-то еще?
Другими словами, есть ли что-то, что дало бы мне следующие результаты:
_______________ ___________________
ads keep (1) | this ad has the
getting longer | most text out of
in char_length | all the ads... (2)
_______________|___________________
short ad. (3) | another short ad. (4)
_______________|___________________
ad that's a (5)| another little
little longer. | longer ad. (6)
Любые идеи?
Спасибо, Эли