关于MySQL去除查询结果重复值

下面先来看看例子:

table:
  id name
  1 a
  2 b
  3 c
  4 c
  5 b

库结构大概这样,这只是一个简单的例子,实际情况会复杂得多。

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

select distinct name from table
得到的结果是:

name
  a
  b
  c

好像达到效果了,可是,我想要得到的是id值呢?改一下查询语句吧:

select distinct name, id from table

结果会是:

id name
  1 a
  2 b
  3 c
  4 c
  5 b

distinct怎么没起作用?作用是起了的,不过他同时作用了两个字段,也就是必须得id与name都相同的才会被排除。

我们再改改查询语句:

select id, distinct name from table

很遗憾,除了错误信息你什么也得不到,distinct必须放在开头。难到不能把distinct放到where条件里?能,照样报错。

select *, count(distinct name) from table group by name

结果:

id name count(distinct name)
  1 a 1
  2 b 1
  3 c 1

最后一项是多余的,不用管就行了,目的达到就行。

原文地址:https://www.cnblogs.com/ZJOE80/p/10919426.html

时间: 2024-10-19 01:45:54

关于MySQL去除查询结果重复值的相关文章

Remove Duplicates from Sorted List 去除链表中重复值节点

Given a sorted linked list, delete all duplicates such that each element appear only once. For example,Given 1->1->2, return 1->2.Given 1->1->2->3->3, return 1->2->3. 如题目所诉,去除递增链表中重复值的节点. 刚开始思路如下: 设置一个指针用于遍历全部节点 让每个节点和其next节点值比较

js去除数组中重复值

//第三种方法加强版 Array.prototype.distinct=function(){ var sameObj=function(a,b){ var tag = true; if(!a||!b)return false; for(var x in a){ if(!b[x]) return false; if(typeof(a[x])==='object'){ tag=sameObj(a[x],b[x]); }else{ if(a[x]!==b[x]) return false; } }

Mysql查询某字段重复值并删除重复值

1.查询重复值: select code,count(*) as count from hospital group by code having count>1; 该语句查询code重复值大于1的记录 2.删除重复: DELETE FROM hospital WHERE id NOT IN (SELECT dt.minno FROM (SELECT MIN(id) AS minno FROM hospital GROUP BY code) dt); 该语句保留id最小的记录,其余code重复的

去除列中的重复值

CSV中原内容: 要求去除A列中的重复字段,去除后如下: 代码如下: 1 $dd = import-csv d:\disks.csv 2 #通过倒序方法去除列中重复值 3 for ($i=$dd.count-1;$i -ge 0;$i--) 4 { 5 $previous = $dd[$i-1].Server 6 $current = $dd[$i].Server 7 If ($current -eq $previous) 8 { 9 $dd[$i].Server = "" 10 }

php二维数组去除重复值

<?php$test[0] = array( 'id' => '17', 'name' => "儿童", 'ra' => "456");$test[1] = array( 'id' => '17', 'name' => "sad儿童", 'ra' => "789");$test[2] = array( 'id' => '16', 'name' => "撒的&quo

mysql常用查询语句

基本语句 1.mysql   -u   root   -p                            数据库连接 2.create   databases  数据库名             创建数据库 3.drop   database   数据库名                 删除数据库 查询语句 4.SELECT * FROM 表名称                    查询表中所有数据 5.SELECT idcard,name FROM student        

[django/mysql] 使用distinct在mysql中查询多条不重复记录值的解决办法

前言:不废话.,直接进入正文 正文: 如何使用distinct在mysql中查询多条不重复记录值? 首先,我们必须知道在django中模型执行查询有两种方法: 第一种,使用django给出的api,例如filter value distinct order_by等模型查询api; 代码:LOrder.objects.values('finish_time').distinct() 这里应注意,原官方文档中写到: 示例(第一个之后的示例都只能在PostgreSQL 上工作): >>> Au

sql查询去除重复值语句

sql 单表/多表查询去除重复记录 单表distinct 多表group by group by 必须放在 order by 和 limit之前,不然会报错 ************************************************************************************ 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select

mysql 去除重复 Select中DISTINCT关键字的用法

在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值.其原因是 distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,我只有用二重循环查询来解决,而 这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的.所以我花了很多时间来研究这个问题,网上也查不到解决方案,期间把容容拉来帮忙,