SQL显示重复的条目

时间:2019-04-28 18:56:19

标签: php mysql sql

我有一个SQL代码正在从数据库中提取信息。这是代码:

$info = "SELECT field_5, record_meta_keywords
FROM cms_custom_database_1
WHERE field_5 > ''
GROUP BY field_5
ORDER BY field_5
DESC LIMIT 10";

问题在于field_5具有重复的条目。例如,该字段中有两个868,但是输出仅显示一个,而不显示另一个。我该如何更改它以显示所有条目,而不仅仅是每个数字之一?

3 个答案:

答案 0 :(得分:2)

您不应在没有汇总功能的情况下使用分组方式

SELECT field_5, record_meta_keywords
FROM cms_custom_database_1
WHERE field_5 > ''
ORDER BY field_5
DESC LIMIT 10

如果您想要独特的价值,请使用独特的

在SQL中不推荐使用不带聚合功能的group by,在最新版本的mysql中不允许(默认情况下),并且与其他版本(<5.7)产生不可预测的结果

如果您要查看所有结果,则只需删除order by

答案 1 :(得分:2)

您正在通过group by明确声明,对于field_5的每个值,结果集中只需要一行。

剩下两个选择。一种是删除GROUP BY

SELECT field_5, record_meta_keywords
FROM cms_custom_database_1
WHERE field_5 > ''
ORDER BY field_5 DESC
LIMIT 10

另一种方法是将其他数据合并为一个列:

SELECT field_5, GROUP_CONCAT(record_meta_keywords) as record_meta_keywords
FROM cms_custom_database_1
WHERE field_5 > ''
GROUP BY field_5
ORDER BY field_5 DESC
LIMIT 10

答案 2 :(得分:0)

GROUP BY返回唯一(即不同)的事件。从查询语句中取出它。