MySQL如何查询出相同的数据(mysql查出相同的数据)
MySQL查询相同的数据可以使用GROUP BY子句。GROUP BY子句能够将查询结果的一组行中拥有相同值的行放到一起,并列出它们所在组拥有的值,也就是将重复的值分为同一组。如要查询某个列中有相同值的行,可以使用下面这条SQL语句:
SELECT col1, COUNT(*)
FROM table
GROUP BY col1;
系统将返回每个col1所包含的数据,包括该数据出现多少次数,及有几行相同数据。
系统默认按照列中的数据排序,即先按照col1对相同的数据进行分组,再按照分组排序,如果要指定排序,可以使用ORDER BY子句。使用ORDER BY时,要注意GROUP BY子句一定要位于ORDER BY之前,如:
SELECT col1, COUNT(*)
FROM table
GROUP BY col1
ORDER BY col1;
GROUP BY子句可以联合多个列查询出相同数据,如要查询col1和col2的相同数据,可以写下:
SELECT col1, col2, COUNT(*)
FROM table
GROUP BY col1, col2;
也可以将查询出的相同数据,列出出现次数,比如查询col1有多少相同数据,及每个数据出现多少次,可以写下:
SELECT col1, COUNT(*) as num
FROM table
GROUP BY col1;
系统将返回包含col1拥有多少组相同值,以及每个值出现多少次。
另外还可以给GROUP BY添加HAVING子句,过滤有特殊条件的组,例如,查询col1中次数大于3的数据:
SELECT col1, COUNT(*) as num
FROM table
GROUP BY col1
HAVING COUNT(*) > 3;
以上就是使用GROUP BY子句查询相同的数据的全部内容。GROUP BY可以分组,按照一定的条件显示某一列的数据,并结合HAVING子句进行数据过滤,是查询MySQL中出现某数据多少次与该数据出现的总行数的最佳方案之一。