У меня есть следующая таблица
Структура таблицы:
CREATE TABLE IF NOT EXISTS `people` (
`name` varchar(10) NOT NULL,
`age` smallint(5) unsigned NOT NULL,
PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Вставить некоторые значения:
INSERT INTO `people` (`name`, `age`) VALUES
('bob', 13),
('john', 25),
('steve', 8),
('sue', 13);
Выполненный запрос:
SELECT MAX( `age` ) , `name` FROM `people` WHERE 1
Ожидаемый результат:
25, John
Сгенерированный результат
25, bob
Мы можем достичь этого, используя этот запрос
SELECT `age`, `name` FROM `people` ORDER BY age DESC LIMIT 1
Вопрос 1: Что я сделал здесь ошибку и почему эта функция MAX не возвращает соответствующую информацию о строках?
Вопрос 2: Какой из них хорош для использования, чтобы увеличить производительность MAX или предложение ORDER BY?