MySQL — возвращает наилучшие результаты

#mysql

#mysql

Вопрос:

Я хочу иметь запрос, который возвращает наилучшие результаты из таблицы.

Я определяю наилучшие результаты как добавление двух столбцов a b (каждый столбец содержит значение int)

ie:

 entry   a    b
1       4    5
2       3    2
3      20    30
  

Будет возвращена запись 3, потому что a b является самым высоким в этом случае.

Есть ли способ сделать это? Одна из моих идей заключалась в том, чтобы создать еще один столбец в таблице, который содержит добавление a и b, а затем упорядочить по DESC, но это кажется немного запутанным.

Есть идеи? Спасибо!

Ответ №1:

 SELECT  *
FROM    mytable
ORDER BY
        a   b DESC
LIMIT 1
  

Однако добавление другого столбца было бы хорошим вариантом, поскольку вы могли бы проиндексировать этот столбец, что улучшило бы запрос.

Комментарии:

1. Интересным вариантом было бы иметь столбец a и колонку a b , но не b столбец. Затем вы бы извлекали b by a b - a и не имели избыточности. Будут ли какие-либо серьезные последствия этого?

2. @lasseespeholt: последствиями будет невозможность создать индекс на b , если он понадобится @op.