首先,我为问题的标题道歉,因为我不完全确定在mysql中调用这种查询。
好的我有一个大型数据库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 :(得分:0)
您需要一个表(例如PropertyNames
),它将每个属性名称变体与其唯一的属性类型名称相匹配。然后,您将使用如下查询:
SELECT distinct a.* from PropertyTable a JOIN PropertyNames b ON b.propertyName ='$propertyName' and a.propertyType = b.nameVariant
。
此处,$propertyName
引用PropertyNames
表中属性的明确名称,您将在下拉选项中使用该名称。