Mysql 推进自定义标准
我正在尝试使用propel critiera构建以下查询:Mysql 推进自定义标准,mysql,sql,propel,Mysql,Sql,Propel,我正在尝试使用propel critiera构建以下查询: SELECT * FROM mytable WHERE facility_id IN (4,7) GROUP BY housing_id HAVING COUNT(DISTINCT facility_id) = 2; 推进标准: $criteria->add(HousingsHousingFacilitiesPeer::HOUSING_FACILITY_ID, $facility_filter, Criteria::IN);
SELECT *
FROM mytable
WHERE facility_id IN (4,7)
GROUP BY housing_id
HAVING COUNT(DISTINCT facility_id) = 2;
推进标准:
$criteria->add(HousingsHousingFacilitiesPeer::HOUSING_FACILITY_ID, $facility_filter, Criteria::IN);
$criteria->addGroupByColumn(HousingsHousingFacilitiesPeer::HOUSING_ID);
$criteria->addHaving(
$criteria->getNewCriterion(
HousingsHousingFacilitiesPeer::HOUSING_ID,
'COUNT(DISTINCT housings_housing_facilities.HOUSING_FACILITY_ID) = 2',
Criteria::CUSTOM
)
);
但是查询不会返回任何结果
我是否正确使用了自定义条件?在第一次检查时,您的
计数不一致
似乎有误:
'COUNT(DISTINCT HousingsHousingFacilitiesPeer::HOUSING_FACILITY_ID) = 2'
如果只是一个坏的c/p,关于,您可以:
$c = new Criteria();
$c->add(HousingsHousingFacilitiesPeer::HOUSING_FACILITY_ID, $facility_filter, Criteria::IN);
$c->addGroupByColumn(HousingsHousingFacilitiesPeer::HOUSING_ID);
$c->addAsColumn('numFacilities', 'COUNT(DISTINCT '.HousingsHousingFacilitiesPeer::HOUSING_FACILITY_ID.')');
$c->addHaving($c->getNewCriterion(HousingsHousingFacilitiesPeer::ID, 'numArticles=2', Criteria::CUSTOM));
第一次检查时,您的
计数不重复
似乎有误:
'COUNT(DISTINCT HousingsHousingFacilitiesPeer::HOUSING_FACILITY_ID) = 2'
如果只是一个坏的c/p,关于,您可以:
$c = new Criteria();
$c->add(HousingsHousingFacilitiesPeer::HOUSING_FACILITY_ID, $facility_filter, Criteria::IN);
$c->addGroupByColumn(HousingsHousingFacilitiesPeer::HOUSING_ID);
$c->addAsColumn('numFacilities', 'COUNT(DISTINCT '.HousingsHousingFacilitiesPeer::HOUSING_FACILITY_ID.')');
$c->addHaving($c->getNewCriterion(HousingsHousingFacilitiesPeer::ID, 'numArticles=2', Criteria::CUSTOM));