我正在开发房地产开发网站。物业有两种价格,一种是价格,另一种是价格。
我将它存储为带有连字符的varchar字段,如下所示: - 25000-30000。
在搜索我在条件之间使用的记录时,价格为where price between 5000 AND 25000
。
执行此查询后,它会返回具有确切价格的属性。我无法得到结果。
答案 0 :(得分:2)
在这里,您需要通过 - 区分2个值并对其进行处理 作为数学价值而不是char。所以你的查询就像 此
SELECT * from tbl_property WHERE price between 5000 AND 25000 OR ( CAST( SUBSTRING_INDEX( price, '-', 1 ) AS UNSIGNED ) between 5000 AND 25000 ) OR ( CAST( SUBSTRING_INDEX( price, '-', -1 ) AS UNSIGNED ) between 5000 AND 25000 )
答案 1 :(得分:0)
您似乎需要拆分价格并检查该值是否大于或等于下限且小于或等于上限。喜欢这个
SELECT * from tbl_property where SUBSTRING_INDEX(property_price, '-', 1) >= 0 AND SUBSTRING_INDEX(property_price, '-', -1) <= 100000