加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 服务器 > 系统 > 正文

MariaDB中DISTINCT子句的语法是啥 有什么要注意

发布时间:2023-08-14 13:58:31 所属栏目:系统 来源:
导读:这篇文章给大家分享的是MariaDB中DISTINCT子句的语法是什么,有什么要注意。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看

这篇文章给大家分享的是MariaDB中DISTINCT子句的语法是什么,有什么要注意。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。

MariaDB DISTINCT子句用于在SELECT语句中从结果中删除重复项。

语法:

SELECT DISTINCT expressions

FROM tables

[WHERE conditions];

注意:当在DISTINCT子句中仅使用表达式时,查询将返回该表达式的唯一值。当您使用多个表达式在DISTINCT子句时,查询将返回多个表达式的唯一组合。

DISTINCT子句不会忽略NULL值。因此,在SQL语句中使用DISTINCT子句时,结果集将包含NULL作为不同的值。

1. 使用单一表达式示例

有一个名称为students的表,有一些重复的条目。例如,就有两个学生的名字叫:Maxsu。可以先来看看students表的中的全部数据记录。

MariaDB [testdb]> select * from students;

+------------+--------------+-----------------+----------------+

| student_id | student_name | student_address | admission_date |

+------------+--------------+-----------------+----------------+

| 1 | Maxsu | Haikou | 2017-01-07 |

| 3 | JMaster | Beijing | 2016-05-07 |

| 4 | Mahesh | Guangzhou | 2016-06-07 |

| 5 | Kobe | Shanghai | 2016-02-07 |

| 6 | Blaba | Shengzhen | 2016-08-07 |

| 7 | Maxsu | Sanya | 2017-08-08 |

+------------+--------------+-----------------+----------------+

6 rows in set (0.00 sec)

现在,使用DISTINCT子句查询去除表中的重复项。参考以下语句 -

SELECT DISTINCT student_name FROM Students;

执行上面语句,得到以下结果 -

MariaDB [testdb]> SELECT DISTINCT student_name FROM Students;

+--------------+

| student_name |

+--------------+

| Maxsu |

| JMaster |

| Mahesh |

| Kobe |

| Blaba |

+--------------+

5 rows in set (0.00 sec)

可以看到上面结果中,在使用DISTINCT子句之后,重复的条目被删除返回一次。即,名字为:Maxsu的行记录只有一条。

2. 使用多个表达式

可以使用DISTINCT子句从MariaDB中的多个表达式中删除重复项。为了更容易说明问题,我们首先再向students表中插入一些数据。

INSERT INTO students

(student_name, student_address, admission_date)

VALUES('Maxsu','Haikou','2015-11-17 00:00:00');

在执行上面插入语句后,students表中名字为:Maxsu的学生一共有3有三位,两位的地址在:Haikou,一位的地址在:Sanya,如下所示 -

MariaDB [testdb]> select * from students;

+------------+--------------+-----------------+----------------+

| student_id | student_name | student_address | admission_date |

+------------+--------------+-----------------+----------------+

| 1 | Maxsu | Haikou | 2017-01-07 |

| 3 | JMaster | Beijing | 2016-05-07 |

| 4 | Mahesh | Guangzhou | 2016-06-07 |

| 5 | Kobe | Shanghai | 2016-02-07 |

| 6 | Blaba | Shengzhen | 2016-08-07 |

| 7 | Maxsu | Sanya | 2017-08-08 |

| 8 | Maxsu | Haikou | 2015-11-17 |

+------------+--------------+-----------------+----------------+

7 rows in set (0.00 sec)

假设查询时,相同名字并且在同一个地址只显示为一条,怎么做?参考以下查询语句 -

SELECT DISTINCT student_name, student_address FROM Students;

执行上面语句,得到以下结果 -

MariaDB [testdb]> SELECT DISTINCT student_name,student_address FROM Students;

+--------------+-----------------+

| student_name | student_address |

+--------------+-----------------+

| Maxsu | Haikou |

| JMaster | Beijing |

| Mahesh | Guangzhou |

| Kobe | Shanghai |

| Blaba | Shengzhen |

| Maxsu | Sanya |

+--------------+-----------------+

6 rows in set (0.00 sec)

从上面查询的结果集中,可以看到当前只显示一条。即:student_name为:Maxsu以及student_address为Haikou的学生信息只有一条。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章