甚么是MySQL中的DISTINCT
DISTINCT是一个MySQL中的关键字,为了消除查询结果集中的重复行,可使用它。它可用于SELECT语句中,可以指定DISTINCT后随着要选择的列名。
DISTINCT的基本语法
使用DISTINCT的基本语法以下:
SELECTDISTINCTcolumn_name1,column_name2,...FROMtable_name;其中,column_name1等表示需要选择的列名。如果你想选择所有列,可使用通配符(),以下所示:
SELECTDISTINCTFROMtable_name;DISTINCT和GROUPBY的区分
有些人可能会把DISTINCT和GROUPBY混淆起来,由于它们都可以用于消除查询结果中的重复行。但它们之间有一个重要的区分:当你想对查询结果分组,并且选择每一个组中的某些列时,应当使用GROUPBY语句。而当你想消除查询结果中的重复行时,应当使用DISTINCT关键字。
接下来看以下示例,假定有一张定单表orders,它包括以下几列:
现在,我们想要查询每一个顾客租赁的区别商品的数量。可使用以下语句:
SELECTcustomer_name,COUNT(DISTINCTproduct_name)FROMordersGROUPBYcustomer_name;这类情况下,需要使用GROUPBY而不是DISTINCT,由于我们想要对结果进行分组,并且也只想查询每一个组中的区别商品数量。
DISTINCT的性能问题
虽然DISTINCT是一个非常有用的关键字,但是在某些情况下,使用它可能会影响查询性能。由于该操作需要在结果集中查找重复行,并将它们过滤掉。
有几种情况下可以免使用DISTINCT的性能问题:
SELECTcolumn1,column2,...FROMtable_nameGROUPBYcolumn1,column2,...;这里的GROUPBY与DISTINCT等效,在某些情况下它比DISTINCT更快。
桂|哥|网|络www.guIgege.cn
TOP