mysql Поведение Max с числовыми бэллами в поле варчара

У нас есть таблица БД, которая имеет ключи и значения, где значение может быть чем угодно в поле вартера. Значения предназначены для атрибутов элемента и одним из атрибутов является цена.

Чтобы сделать поле select для цен, я использовал функцию Max(), чтобы найти наибольшее значение в столбце значений, которое, казалось бы, работало.

Затем, когда мы получили цены выше 100 фунтов стерлингов, они начали не возвращаться в качестве максимального значения. Я настаиваю на том, что это потому, что это строковое значение, а не числовое.

Путаница возникает при выполнении такой команды, как выбрать max(value) из атрибутов, где значение > 100, потому что теперь оператор признает, что 101 - это > 100, но 99 не так возвращает 101 как максимальное значение, однако без пункта , где значение > 100, 99 рассматривается как > 101. Почему выражение > 100 работает как числовое сравнение, а max нет?

Есть ли причина, по которой это происходит?

8
задан Luke 5 September 2011 в 10:31
поделиться