数据库distinct用法:当使用mysql时,有时候需要查询一个字段不重复的记录,尽管mysql提供了distinct这个关键字,以过滤掉多余的重复记录,但为了返回没有重复性记录的所有值,通常只能返回不重复记录的条数,而不使用该记录返回所有值。
1、这是因为distinct只能返回它的目标字段,而不能返回其他字段,这个问题一直困扰着我,如果使用distinct也不能解决,只能使用二重循环查询,而且这样对于数据量非常大的站来说,无疑会直接影响到我的效率。
2、表格中可以包含重复值。尽管有些时候,您可能想简单地列出一个不同(distinct)的值。使用distinct关键词返回一个唯一的不同值。
表格A
例子1
下面是复制代码:
selectdistinctnamefromA
实施后的结果如下:
范例2
下面是复制代码:
selectdistinctname,idfromA
实施后的结果如下:
事实上,distinct按照name+id来重,distinct同时作用于name和id,Access和SQLServer都支持这种方式。
例子3:统计学
下面是复制代码:
selectcount(distinctname)fromA;--name脱重后的数量,SQLServer支持,而Access不支持
selectcount(distinctname,id)fromA;--SQLServer和Access都不支持
例子4
下面是复制代码:
selectid,distinctnamefromA;--由于必须将distinct置于开始位置
其它
distinct语句中的select显示的字段只能是distinct所指定的字段,不可能出现其他字段。举例来说,假设表A有mote列,那么如果希望获得distinc名称和相应的memo字段,就无法直接通过distinct。
总结:对于SQLServer将一列的多行内容拼接为一行的问题,可以用其他方法来实现讨论