在 MySQL 中查询不重复记录值的方法

发布于 2018-10-17 19:46:57 字数 1152 浏览 2673 评论 1

使用 WordPress 的过程中,我一直很好奇 WordPress 的一个功能,大家都知道在 WordPress 的编写文章的时候,可以自定义栏目,而这个自定义栏目的数据保存到 wp_postmeta 表中,如果你往 wp_postmeta 表中添加一个新的 meta_key,那么在 WordPress 的自定义栏目那里就会看到这个新的字段,可是这个表里面有那么多的数据,他是如何查询得到的数据。在网上搜索了半天,才发现 MySQL 的 SQL 查询语句可以查询不重复记录值的功能,真是大开眼界,也许可能是我不知道吧,其他的数据库应该也有这样的功能。

distinct

MySQL 提供了 distinct 这个关键词来过滤掉重复记录而值保留一条查询结果,这样就能有效的去除多余的结果,以前我的方法就是使用二次循环,现在想想以前的方法真是太笨了,如果对于大型的网站而言,简直没法完成查询。 我的 WordPress 数据库中的 wp_postmeta 表都有 10,000 多行了,如果使用两次循环查找判断,程序性能肯定很低。

 

如果我想用一条语句查询得到 name 不重复的所有数据,那就必须使用 distinct 去掉多余的重复记录。

select distinct `meta_key` from `wp_postmeta`

从上图可以看出查询的结果只有24条了,所有meta_key相同的都被排除了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

灵芸 2019-03-30 16:45:35 1 楼

一般 distinct 用来查询不重复记录的条数:

select count(distinct name) from A;

如果要查询不重复的记录,有时候可以用 group by :

select id,name from user group by name;
~没有更多了~

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84935 人气
更多

推荐作者

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击“接受”或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。