2017-10-09 5 views
0

まず、この種のクエリがmysqlでどのように呼び出されているか完全にはわからないので、質問のタイトルをお詫び申し上げます。ハウスタイプのPHP mysqlクエリ

OK海外の不動産/不動産のリストを含む大規模なデータベース700,000件+があります。

注:私は実際のライブサイトで準備された文章とともにmysql pdoを使用しています。

私はプロパティが住宅、アパートや土地としてデータベースにリストアップされている場合、次の問合せ

$propertyType = 'House'; 
//// This is generated from a drop down with possible values of House, Apartment & Land 

$sql = 'SELECT * FROM PropertyTable WHERE 
     PropertyType = $propertyTpye' 

今すぐこのクエリは正常に動作しています。私の問題は、データベースは世界中の複数の不動産業者からのいくつかのXMLフィードから作成されており、これらの不動産代理店は物事を別々に呼び出すことです。

たとえば、英国では家を「別荘」、「タウンハウス」、「戸建ての家」、「シャトー」、「マンション」などと呼ぶことができる家と呼ばれます。

アパートの場合、「アパート」、「フラット」、「ペントハウス」などがあります。

データベーステーブルの検索に最適なソリューションは何ですか。私はドロップダウンメニューにこれらのオプションをすべて入れたくないので、特定のものになり、十分な結果を返さないためです。

任意のポインタを大幅に独自のプロパティタイプ名に各プロパティ名バリアントに一致する(PropertyNamesを言う)あなたはテーブルが必要になります

+0

あなたのエージェントは、あなたが入力した 'propertyType'をどのように挿入するのですか、それともドロップダウンを持っていますか? – Sand

+0

エージェントは、プロパティタイプの文字列値を持つxmlフィードを私に提供します。だから、私はそこに何でもコントロールすることはできません –

+1

XMLデータをデータベースにアップロードする前に*標準化する必要があります。 –

答えて

0

をいただければ幸いです。次に、次のようなクエリを使用します。

SELECT distinct a.* from PropertyTable a JOIN PropertyNames b ON b.propertyName ='$propertyName' and a.propertyType = b.nameVariant

ここで、$propertyNameは、ドロップダウン選択で使用するPropertyNamesテーブル内のプロパティの明白な名前を指します。