MySQL - специализированный порядок?

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

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

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

1
задан Zak Laberg 7 July 2010 в 23:16
поделиться

1 ответ

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

ORDER BY games_played < 10, wins / losses DESC

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

2
ответ дан 2 September 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: