MySQL - специализированный заказ? - PullRequest
1 голос
/ 08 июля 2010

Есть ли способ указать процедуру сортировки для ORDER BY или какую-то другую логику?Мне нужно проверить некоторые другие данные для упорядоченного столбца, который также находится в строке.Например, если один столбец имеет более высокое значение, чем другой, но определенное условие не выполняется, он сортируется как более низкий.Прямо сейчас я извлекаю все данные в столбце, сортирую их в PHP с помощью usort (), а затем разбиваю на страницы, но это довольно плохое снижение производительности.Я действительно хотел бы переместить его в MySQL, это возможно?Если так, то как?: P

Заранее спасибо!

Пример проблемы на веб-сайте здесь - записи сортируются по проценту выигрышей, но игроки, у которых есть 1 игра, включаютсятоп со 100% выигрышем.Я хотел бы установить порог для игр, а затем отсортировать их ниже, хотя процент их выигрышей выше.

1 Ответ

2 голосов
/ 08 июля 2010

Вы можете заказать по нескольким выражениям:

ORDER BY games_played < 10, wins / losses DESC

Первое выражение сортирует всех игроков, сыгравших в 10 или более игр, выше всех игроков, которые сыграли менее 10 игр.Второе выражение сортируется по соотношению выигрыш / проигрыш.Второе выражение используется только для связывания строк, которые были равны для первого выражения.Это означает, что игрок, сыгравший 10 игр, всегда будет отображаться над игроком, который сыграл только 9 игр, независимо от соотношения выигрыша / проигрыша.

...