程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL中distinct和count(*)的應用辦法比擬

MySQL中distinct和count(*)的應用辦法比擬

編輯:MySQL綜合教程

MySQL中distinct和count(*)的應用辦法比擬。本站提示廣大學習愛好者:(MySQL中distinct和count(*)的應用辦法比擬)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL中distinct和count(*)的應用辦法比擬正文


起首關於MySQL的DISTINCT的症結字的一些用法:

1.在count 不反復的記載的時刻能用到,好比SELECT COUNT( DISTINCT id ) FROM tablename;就是盤算talbebname表中id分歧的記載有若干條。

2,在須要前往記載分歧的id的詳細值的時刻可以用,好比SELECT DISTINCT id FROM tablename;前往talbebname表中分歧的id的詳細的值。

3.下面的情形2關於須要前往mysql表中2列以上的成果時會有歧義,好比SELECT DISTINCT id, type FROM tablename;現實上前往的是 id與type同時不雷同的成果,也就是DISTINCT同時感化了兩個字段,必需得id與tyoe都雷同的才被消除了,與我們希冀的成果紛歧樣。

4.這時候候可以斟酌應用group_concat函數來停止消除,不外這個mysql函數是在mysql4.1以上才支撐的。

5.其實還有別的一種處理方法,就是應用,SELECT id, type, count(DISTINCT id) FROM tablename,固然如許的前往成果多了一列無用的count數據(也許你就須要這個我說的無用數據),前往的成果是只要id分歧的一切成果和下面的4類型可以互補應用,就是看你須要甚麼樣的數據了。
DISTINCT的效力:

SELECT id, type, count(DISTINCT id) FROM  tablename;固然如許的前往成果多了一列無用的count數據(也許你就須要這個我說的無用數據),SELECT id, type from tablename group by id;如許貌似也能夠,用distinct的時刻,假如它有索引,mysql會把它轉成group by的方法履行。

 MySQL數據庫關於COUNT(*)的分歧處置會形成分歧的成果,好比,

  履行:SELECT COUNT(*) FROM tablename;即便關於萬萬級其余數據mysql也能異常敏捷的前往成果。 
  履行: SELECT COUNT(*) FROM tablename WHERE…..;mysql的查詢時光開端爬升。 

網上查材料得知:當沒有WHERE語句關於全部mysql的表停止count運算的時刻,MyISAM類型的表中保留有總的行數,而當添加有WHERE限制語句的時刻Mysql須要對全部表停止檢索,從而得出count的數值,是以加上where前提的查詢速度就會很慢了。
以上關於MySQL數據庫的distinct和count(*)的應用就引見到這裡了,願望本次的引見可以或許帶給您一些收成。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved