我正在使用 PHP 和 MySql。我需要一个查询,它应该根据我的要求获取结果。
我有一个表 property_features_table,其中包含具有某些功能的属性。
在前端我有一个搜索功能。当用户选择多个功能时假设 阳台、无线网络、两卧室等,应该向他展示具有他选择的所有功能的特性。
但是当我使用以下代码时,我得到的结果(属性)至少具有其中一项功能。
$featuresString = implode("','",$features);
$featuresString = "'".$featuresString."'";
$query = " SELECT * FROM property_features_tbl WHERE property_features_tbl.feature_id in (".$featuresString.")";
$features 是一个包含用户选择的功能的数组。
我想显示具有用户选择的所有功能的属性。帮助我编写查询。
最佳答案
假设您只需要属性 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";
?>
关于php - 使用 PHP 数组实现 AND 功能的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20496242/