У нас есть таблица БД, которая имеет ключи и значения, где значение может быть чем угодно в поле вартера. Значения предназначены для атрибутов элемента и одним из атрибутов является цена.
Чтобы сделать поле select для цен, я использовал функцию Max()
, чтобы найти наибольшее значение в столбце значений, которое, казалось бы, работало.
Затем, когда мы получили цены выше 100 фунтов стерлингов, они начали не возвращаться в качестве максимального значения. Я настаиваю на том, что это потому, что это строковое значение, а не числовое.
Путаница возникает при выполнении такой команды, как выбрать max(value) из атрибутов, где значение > 100
, потому что теперь оператор признает, что 101 - это > 100, но 99 не так возвращает 101 как максимальное значение, однако без пункта , где значение > 100
, 99 рассматривается как > 101. Почему выражение > 100 работает как числовое сравнение, а max нет?
Есть ли причина, по которой это происходит?