SQL中显示所有相同的记录
26/Mar 2017
select * from t_cgi
WHERE (cHost,cUri) in (
select cHost,cUri from t_cgi GROUP BY cHost,cUri HAVING COUNT(cHash)> 1
) ORDER BY CONCAT(cHost,cUri)
因为需要统计,所以必须要用GROUP BY, 然后用HAVING COUNT进行判断数据记录数, 这里有一个问题,就是因为是两个字段,所以在获取时候的WHERE IN需要用括号括起来. 附录:表结构
CREATE TABLE t_cgi(
cHash CHAR(32) UNIQUE,
cHost VARCHAR(32) NOT NULL ,
cUri VARCHAR(64) NOT NULL DEFAULT '/',
cRaw TEXT ,
cTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (cHash)
)