MySql查询价格区间

MySql query price between range

好的,我为我的搜索页面做了这个查询:

SELECT * FROM `posts` WHERE `ad_price` >= 0 AND `ad_price` <= 300

这部分显示了基于添加这些人的不同结果:“”

>= 0 AND `ad_price` <= 300

如果我说>= 0 AND `ad_price` <= 300

数据 returns 介于 0 和 30 之间的任何值,但如果我说 >= "0" AND `ad_price` <= "300" 它得到的数字高达 10,000 和 2000 等等。为什么?

这是我完全 PHP 准备好的语句(我知道它们被视为字符串,但如果它在准备好的语句中,我该如何更改它):

$query = "SELECT * FROM `posts` WHERE `ad_title` LIKE CONCAT('%',?,'%') AND `ad_brand` 
LIKE CONCAT('%',?,'%') AND `ad_price` >= ? AND `ad_price` <= ?"; 
$get_posts = $conn_posts->prepare($query);
$get_posts->bind_param("ssss", $title, $brand, $min_range, $max_range);

"ssss" 告诉 mysql 将所有输入值视为字符串。使用 i 作为您希望被视为数字的参数。

例如

"ssii"

你的情况。

这在手册中有记载:https://www.php.net/manual/en/mysqli-stmt.bind-param.php