SQL显示重复条目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,但输出仅显示一个而不显示另一个。如何更改此选项以显示所有条目,而不仅仅是每个数字中的一个?

答案

如果没有聚合功能,则不应使用group by

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

如果你想要不同的价值,那么使用distinct

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

在您的情况下,如果您想查看所有结果,那么只需删除order by

另一答案

您明确指出 - 通过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
另一答案

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

以上是关于SQL显示重复条目的主要内容,如果未能解决你的问题,请参考以下文章

NativeQuery 删除重复的 Oracle SQL Db 表条目不起作用(参见代码)

使用 C# 和 SQL 解决 datagridview 中重复条目的最佳方法是啥?

在片段中显示适当的 SQLite 数据(相同的条目出现在不同的选择条目中)

如果另一列中的值是唯一的,那么如何在SQL中放置一个显示1的列,如果它是重复的则为0?

防止数组中的双重条目[重复]

选择那些具有多个条目的字段[重复]