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
好的,我为我的搜索页面做了这个查询:
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