SELECt *FROM ( SELECt id FROM ( SELECt id FROM VWTenantPropertiesResults WHERe ContentStreet = 'Holderness Road' UNIOn ALL SELECt id FROM VWTenantPropertiesResults WHERe ContentTown = 'Hull' UNIOn ALL SELECt id FROM VWTenantPropertiesResults WHERe ContentPostCode = 'HU' ) qi GROUP BY id HAVINg COUNT(*) >= 2 ) qJOIN VWTenantPropertiesResults rON r.id = q.idWHERe ContentBedrooms BETWEEN 1 AND 4 AND ContentPrice BETWEEN 50 AND 500ORDER BY ContentPrice
这将返回至少
2符合条件的所有记录。
该解决方案是指数型:不同
OR的条款,它将使用上的索引
ContentStreet,
ContentTown和
ContentPostCode。
有关性能的详细信息,请参见我的博客中的以下条目:
- 匹配3之4
为了获得最佳性能和安全性,请使用绑定参数替换替换的参数值。
这将节省您解析查询的时间,并可以防止
SQL注入。



