Как правильно составить SQL запрос с использованием команды BETWEEN и реализовать его с помощью PDO PHP подготовленными запросам Питаюсь реализовать фильтр товаров по цене, имеются две переменные которые я использую как минимум и максимум того промежутка цен который нужно извлечь с БД, ниже представляю пример того чего я навоял PHP: $db_act = $connect_db->PREPARE("SELECT * FROM `table_product` WHERE `price` BETWEEN ? AND ?"); $db_act->EXECUTE(array($this -> FROM, $this -> up)); $array_product = $db_act->fetchAll(PDO::FETCH_ASSOC); Проблема заключается в том что, запрос работает как то не полностью, если установить минимум 100 рублей, а максимум 100000 рублей, то вернуться соответствующие результаты, однако работает это с определёнными промежутками, например если я изменю минимум и поставлю 30 рублей место 100 то результата не будет вообще никакого, казалось бы, промежуток стал больше, но запрос возвращает 0 строк, я даже не могу понять какого рода это ошибка Мой вопрос: как правильно реализовать такой SQL запрос, должен быть именно подготовленный запрос Опишу свою БД, MySQL, в таблице 41 кортеж (знаю это не правильно, ну мне и не нужно правильно, нужно чтобы работало), поле price -> vchar(10), в этом поле только цифры без пробелов и других способов форматирования
@primitiv, цена хранится в строке. Строки сравниваются не так, как числа. Если цена в базу пишется с точностью до копеек в виде целого числа (например, 1р 25к записан 125) или в рублях без копеек - преобразуйте поле `price` в INT Если нужны рубли и копейки - есть вариант с типом decimal. Если уж совсем ничего менять не хочется, можно применить функцию cast к полю `price`, чтобы получить целое число, которое будет проверяться на принадлежность интервалу.