我有一个sql语句,我试图获得具有最少数量的视图的广告:
SELECT * FROM ads WHERE type='crossPromo' AND city='$city' AND views= ( SELECT MIN(views) FROM ads ) AND expire >= '$today' LIMIT 1";
选择广告后,会逐一增加视图列.
一切都很完美.一旦.似乎所有广告== 1,它不仅会选择随机广告或第一个广告,而且不会返回任何内容.
当它们全部相等时,有没有办法让它返回添加?
我想你可以使用order by
和limit
:
select a.* from ads where type = 'crosspromo' and city = '$city' and expire >= '$today' order by views limit 1;
您的查询的问题是它返回子查询中所有广告的最小值.但是,该最小值可能不满足其他条件,因此不返回任何内容.