使用PHP数组实现AND功能的SQL查询

时间:2013-12-10 13:47:20

标签: php mysql sql

我正在使用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是一个包含用户选择功能的数组。

我想显示具有用户选择的所有功能的属性。帮我编写查询。

1 个答案:

答案 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";

?>