ユーザーが最低価格と最高価格に基づいて物件を検索できる不動産サイトに取り組んでいます。データベースには、property_price_maximum や property_price_minimumなどのフィールドがあり、どちらもINTに設定されています。
これらは、ユーザーが値を入力するための 2 つのコンボ ボックスです。
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 = lakh および Cr = Crore。(100 lacs = 1Crore) [情報のために追加]
intsの場合、私はこれを試しました:
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');
最小価格と最大価格がユーザーの範囲内にあるプロパティを取得したい.問題は、ユーザーが 25 lacs と 1.5 Cr を選択した場合、ここの bcoz の UNITS であり、クエリが正しく返されません。
数字に関する限り、LIKE は良い選択肢ではないと思います。
あらゆる種類の有益なコメントをいただければ幸いです。