我想做这样的事情:
SELECT * 
  FROM db.table 
 WHERE COUNT(someField) > 1
我怎样才能在MySql中实现这一点?
OMG*_*ies 143
使用HAVING,not WHERE子句进行聚合结果比较.
以面值进行查询:
SELECT * 
  FROM db.table 
HAVING COUNT(someField) > 1
理想情况下,应该GROUP BY在HAVING子句中定义适当的估值,但MySQL确实允许来自GROUP BY的隐藏列 ...
这是为了准备一个独特的约束someField吗?看起来应该是......
小智 16
SELECT username, numb from(
Select username, count(username) as numb from customers GROUP BY username ) as my_table
WHERE numb > 3
Bil*_*win 14
你也可以通过自我加入来做到这一点:
SELECT t1.* FROM db.table t1
JOIN db.table t2 ON t1.someField = t2.someField AND t1.pk != t2.pk
单程
SELECT t1.* 
FROM db.table t1
WHERE exists 
      (SELECT *
      FROM db.table t2 
      where t1.pk != t2.pk 
      and t1.someField = t2.someField)
干得好:
SELECT Field1, COUNT(Field1)
  FROM Table1 
 GROUP BY Field1
HAVING COUNT(Field1) > 1
ORDER BY Field1 desc
| 归档时间: | 
 | 
| 查看次数: | 260573 次 | 
| 最近记录: |