2017-10-09 58 views
0

首先,我爲問題的標題道歉,因爲我不完全確定這種查詢在mysql中被稱爲什麼。php mysql查詢房屋類型

好吧SO我有一個大型的數據庫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提要中填充的,這些地產代理以不同的方式調用事物。

例如,在英國,一所房子被稱爲別墅,「別墅」可以稱爲「別墅」,「別墅」,「獨棟別墅」,「城堡」,「豪宅」等。

然後用於公寓可以有「公寓」,「平」,「複式」等

什麼是搜索數據庫表中的最佳解決方案。我不想將所有這些選項放在下拉菜單中,因爲它變得具體化並且不會返回足夠的結果。

任何指針將不勝感激

+0

您的代理如何插入「propertyType」?他們鍵入或他們有一個下拉? – Sand

+0

代理爲我提供一個xml提要,其中包含一個字符串值,用於屬性類型。所以我無法控制任何一方 –

+1

在將數據上傳到數據庫之前,您應該對XML數據進行規範化。 –

回答

0

您將需要一個表(比如PropertyNames),每個屬性名相匹配的變體以其獨特的屬性類型名稱。然後你會使用如下查詢:

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

在這裏,$propertyName引用PropertyNames表中屬性的明確名稱,您將在下拉選擇中使用該名稱。