mysql DISTINCT的用法


http://justcoding.iteye.com/blog/2116837

SELECT count(*) FROM tablename;百萬級別的數據也能很快返回結果,但是如果加了where條件之后速度直接慢下來了

當沒有WHERE語句對於整個mysql的表進行count運算的時候
MyISAM類型的表中保存有總的行數,而當添加有WHERE限定語句的時候Mysql需要對整個表進行檢索
從而得出count的數值

1、利用DISTINCT統計不重復的記錄

如:SELECT COUNT( DISTINCT id ) FROM tablename;//計算talbebname表中id不同的記錄有多少條

2、返回記錄不同的id的具體值

SELECT DISTINCT id FROM tablename;

注意:2的這種查發只能用在一個字段上,如果是SELECT DISTINCT id,name FROM tablename;查詢出來的結果返回的是 id與name同時相同才會被過濾,只有id或者name有相同的是不會過濾掉的;

mysql4.1以上可以用group_concat

另一種解決辦法是:SELECT id, type, count(DISTINCT id) FROM tablename group by id;//一定要加group by id

或者select id,type from a group by id;這樣也行吖

用distinct的時候,如果它有索引,mysql會把它轉成group by的方式執行

 mysql無法遠程連接:1看給沒給訪問權限 服務其本地用外網賬號登陸

 -h *.*.*.* 直接寫外網ip
能登陸的話就看下端口是否正確

2以上都正確那就防火牆阻止或者ip地址不對


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM