在房地产网站上工作,用户可以根据最低和最高价格搜索房产。现在在数据库中,我有诸如property_price_maximum 和 property_price_minimum之类的字段,它们都设置为INT。
这是供用户输入值的两个组合框。
Min Max
5 lacs 25 lacs
25 lacs 50 lacs
50 lacs 70 lacs
70 lacs 1.5 Cr
1.5 Cr 5 Cr
注意:lacs = 十万,Cr = 千万。(100 lacs = 1Crore)[添加信息]
对于整数我试过这个:
select property_price_min,property_price_max from properties where (property_price_min between 25 and 55) and (property_price_max between 25 and 55);
工作正常,但是当有像 1.5 这样的 Crore 值时,这会失败,因为我没有在数据库中输入单位。
当我将数据库中的字段更改为 Varchar 并尝试使用单位进行类似查询时,结果不正确(显然因为 BETWEEN 仅根据我的知识比较数字)
SELECT * from properties inner join cities on properties.city_id=cities.city_id inner join locality on properties.locality_id=locality.locality_id where (cities.city_name like '%".$citySearch."%' and locality.locality_name like '%".$localitySearch."%') and (property_price_min between '78 Lacs' and '80 Lacs');
我想获得最低和最高价格在用户范围之间的属性。问题是这里的单位 bcoz 如果用户选择 25 lacs 和 1.5 Cr,那么我的查询将不会返回正确。
就数字而言,我认为 LIKE 不是一个好的选择。
任何有帮助的评论将不胜感激。