我有一张产品和价格的表(产品),如下所示:
|id|product|price
|1|bicycle|199.00
|2|car|2999.00
|3|doll|19.00
我希望能够获得价格高于X的所有产品。虽然我下面的代码不起作用(它得到的产品不在间隔之间)而且我想我遇到它因为点在价格
我正在使用CodeIgniter,我的查询如下所示:
$this->db->from('products');
$this->db->where('id', $row->product_id);
// If price interval is set
if(!empty($start_price))
{
$this->db->where('products.price >=', $start_price);
$this->db->where('products.price <=', $end_price);
}
$query = $this->db->get();
常规声明类似于
$price = 150.00
$query = 'SELECT * FROM products WHERE price > ' . $price . '";
如何在表格列中添加一个点并仍然使用大于?它有很多线条,所以改变一切都是不可能的,我害怕
答案 0 :(得分:1)
如果您同时具有这两个限制,则此查询应该有效 -
$query = "select * from products where price between $p1 and $p2"
答案 1 :(得分:0)
如果您的列价格被声明为例如 FLOAT , DOUBLE 或 DECIMAL ,这应该可行
SELECT * FROM products WHERE price > $start_price1 and price < $end_price2 ;
如果声明为 VARCHAR
SELECT * FROM products
WHERE CAST(price AS FLOAT)> $start_price1
AND CAST(price AS FLOAT) < $end_price2;