我正在使用PHP和MySql。我需要一个查询,它应该根据我的要求获取结果。
我有一个表property_features_table,它具有包含某些功能的属性。
在前端我有搜索功能。当用户选择多个功能时 阳台,无线网络,2卧室等,他应该显示具有他选择的所有功能的属性。
但是当我使用下面的代码时,我得到的结果(属性)至少有一个功能。
$featuresString = implode("','",$features);
$featuresString = "'".$featuresString."'";
$query = " SELECT * FROM property_features_tbl WHERE property_features_tbl.feature_id in (".$featuresString.")";
$ features是一个包含用户选择功能的数组。
我想显示具有用户选择的所有功能的属性。帮我编写查询。
答案 0 :(得分:1)
假设您只想要属性ID,那么这样的事情: -
<?php
$featuresString = implode("','",$features);
$featuresString = "'".$featuresString."'";
$feature_count = count($features);
$query = " SELECT property_id, COUNT(*) AS feature_count
FROM property_features_tbl
WHERE property_features_tbl.feature_id in (".$featuresString.")
GROUP BY property_id
HAVING feature_count = $feature_count";
?>