Вы пишете:
Колонна варчар.
В этом и заключается ваше форматирование в столбце. Для строки, которую вы упоминаете, вы, по сути, делаете это:
> SELECT '22,500' BETWEEN 1 AND 600;
MySQL принудительно преобразует строку '22,500'
в числовое значение, отсекая все после (и включая) первую запятую. Таким образом, item_price
из '22,500'
становится 22, что, конечно, между 1 и 600. (Что произойдет, если вы ПОКАЖИТЕ ПРЕДУПРЕЖДЕНИЯ после выполнения вашего оператора? Я думаю, вы увидите предупреждение о неправильном усечении DOUBLE ... )
Преобразуйте ваш столбец в истинный числовой тип и повторите запрос. (Исправление проблемы @CanSpice указал ...)