大于语句中包含不需要的char

时间:2014-01-31 07:08:35

标签: php mysql codeigniter

我有一张产品和价格的表(产品),如下所示:

|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 . '";

如何在表格列中添加一个点并仍然使用大于?它有很多线条,所以改变一切都是不可能的,我害怕

2 个答案:

答案 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;