Rumah > pangkalan data > tutorial mysql > 详解SQL中distinct的使用方法

详解SQL中distinct的使用方法

黄舟
Lepaskan: 2017-12-05 15:02:49
asal
3361 orang telah melayarinya

distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只能返回它的目标字段,而无法返回其它字段,接下来通过本篇文章给大家分享SQL中distinct的用法,需要的朋友可以参考下

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

在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 distinct用于返回唯一不同的值。

表A:

示例1

代码如下:

select distinct name from A
Salin selepas log masuk

执行后结果如下:

示例2

代码如下:

select distinct name, id from A
Salin selepas log masuk

执行后结果如下:

实际上是根据“name+id”来去重,distinct同时作用在了name和id上,这种方式Access和SQL Server同时支持。

示例3:统计

代码如下:

select count(distinct name) from A;    --表中name去重后的数目, SQL Server支持,而Access不支持
select count(distinct name, id) from A; --SQL Server和Access都不支持
Salin selepas log masuk

示例4

代码如下:

select id, distinct name from A;   --会提示错误,因为distinct必须放在开头
Salin selepas log masuk

其他

distinct语句中select显示的字段只能是distinct指定的字段,其他字段是不可能出现的。例如,假如表A有“备注”列,如果想获取distinc name,以及对应的“备注”字段,想直接通过distinct是不可能实现的。

总结:

本文利用示例详细介绍了SQL中distinct的使用方法,更为直观的为大家展示distinct的使用,相信小伙伴们都有自己的了解和认识了,希望对你的工作有所帮助!

相关推荐:
mysql count distinct 统计结果去重

一个distinct问题引发的思考

Oracle—distinct的用法

SQL中distinct的用法(四种示例分析)

Atas ialah kandungan terperinci 详解SQL中distinct的使用方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan