国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql如何刪掉重復的數據

2024-07-24 12:33:49
字體:
來源:轉載
供稿:網友
  在 MySQL 中使用 SELECT 語句執行簡單的數據查詢時,返回的是所有匹配的記錄。如果表中的某些字段沒有唯一性約束,那么這些字段就可能存在重復值。為了實現查詢不重復的數據,MySQL 提供了 DISTINCT 關鍵字。
 
  DISTINCT 關鍵字的主要作用就是對數據表中一個或多個字段重復的數據進行過濾,只返回其中的一條數據給用戶。
 
  DISTINCT 關鍵字的語法格式為:
 
  SELECT DISTINCT <字段名> FROM <表名>;
  其中,“字段名”為需要消除重復記錄的字段名稱,多個字段時用逗號隔開。
 
  使用 DISTINCT 關鍵字時需要注意以下幾點:
 
  DISTINCT 關鍵字只能在 SELECT 語句中使用。
  在對一個或多個字段去重時,DISTINCT 關鍵字必須在所有字段的最前面。
  如果 DISTINCT 關鍵字后有多個字段,則會對多個字段進行組合去重,也就是說,只有多個字段組合起來完全是一樣的情況下才會被去重。
  示例
 
  下面通過一個具體的實例來說明如何實現查詢不重復數據。
 
  test 數據庫中 student 表的表結構和數據如下所示:
 
  mysql> SELECT * FROM test.student;
  +----+----------+------+-------+
  | id | name     | age  | stuno |
  +----+----------+------+-------+
  |  1 | zhangsan |   18 |    23 |
  |  2 | lisi     |   19 |    24 |
  |  3 | wangwu   |   18 |    25 |
  |  4 | zhaoliu  |   18 |    26 |
  |  5 | zhangsan |   18 |    27 |
  |  6 | wangwu   |   20 |    28 |
  +----+----------+------+-------+
  6 rows in set (0.00 sec)
  結果顯示,student 表中存在 6 條記錄。
 
  下面對 student 表的 age 字段進行去重,SQL 語句和運行結果如下:
 
  mysql> SELECT DISTINCT age FROM student;
  +------+
  | age  |
  +------+
  |   18 |
  |   19 |
  |   20 |
  +------+
  3 rows in set (0.00 sec)
  對 student 表的 name 和 age 字段進行去重,SQL 語句和運行結果如下:
 
  mysql> SELECT DISTINCT name,age FROM student;
  +----------+------+
  | name     | age  |
  +----------+------+
  | zhangsan |   18 |
  | lisi     |   19 |
  | wangwu   |   18 |
  | zhaoliu  |   18 |
  | wangwu   |   20 |
  +----------+------+
  5 rows in set (0.00 sec)
  對 student 表中的所有字段進行去重,SQL 語句和運行結果如下:
 
  mysql> SELECT DISTINCT * FROM student;
  +----+----------+------+-------+
  | id | name     | age  | stuno |
  +----+----------+------+-------+
  |  1 | zhangsan |   18 |    23 |
  |  2 | lisi     |   19 |    24 |
  |  3 | wangwu   |   18 |    25 |
  |  4 | zhaoliu  |   18 |    26 |
  |  5 | zhangsan |   18 |    27 |
  |  6 | wangwu   |   20 |    28 |
  +----+----------+------+-------+
  6 rows in set (0.00 sec)
  因為 DISTINCT 只能返回它的目標字段,而無法返回其它字段,所以在實際情況中,我們經常使用 DISTINCT 關鍵字來返回不重復字段的條數。
 
  查詢 student 表中對 name 和 age 字段去重之后記錄的條數,SQL 語句和運行結果如下:
 
  mysql> SELECT COUNT(DISTINCT name,age) FROM student;
  +--------------------------+
  | COUNT(DISTINCT name,age) |
  +--------------------------+
  |                        5 |
  +--------------------------+
  1 row in set (0.01 sec)
  結果顯示,student 表中對 name 和 age 字段去重之后有 5 條記錄。
 
  感謝各位的閱讀!關于“mysql如何去掉重復的數據”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉林市| 大埔区| 抚顺市| 鹤岗市| 石景山区| 呼和浩特市| 新晃| 舟曲县| 工布江达县| 津南区| 海口市| 永修县| 道孚县| 新巴尔虎右旗| 吴桥县| 常德市| 和硕县| 三明市| 石屏县| 武威市| 阿瓦提县| 丹江口市| 永登县| 寿光市| 理塘县| 洪雅县| 桃园市| 土默特右旗| 高青县| 交城县| 连江县| 泰州市| 吕梁市| 西盟| 类乌齐县| 琼结县| 翼城县| 昂仁县| 天祝| 阿拉善右旗| 浏阳市|