Используйте подзапрос, если вы хотите разрешить нескольким заголовкам использовать одно и то же максимальное значение:
select title from table where value = (select max(value) from table);
РЕДАКТИРОВАТЬ: Что касается вашего собственного запроса:
Вы объединяете все строкик одному, запрашивая MAX(value)
без предложения GROUP BY
.Но затем вы выбираете title
.Который?Вы не говорите СУБД, и поэтому запрос на самом деле является недействительным SQL.MySQL, однако, допускает это скольжение и тихо применяет ANY_VALUE
к title
, а это не то, что вам нужно.Вам нужен конкретный.
В вашем запросе есть еще один недостаток: в HAVING MAX(value)
у вас нет сравнения (как, например, в HAVING MAX(value) > 1000
).Но СУБД ожидает выражение с логическим результатом (true, false или null).В идеале ваше выражение должно вызывать ошибку, но MySQL просто преобразует значение в логическое значение с false = 0, true <> 0. 68565 не равно нулю, поэтому условие истинно.
Таким образом, в итоге вы получите одинстрока с произвольно выбранным заголовком.