MySQL 統(tǒng)計(jì)查詢(xún)實(shí)現(xiàn)代碼
SELECT COUNT() FROM 語(yǔ)法用于從數(shù)據(jù)表中統(tǒng)計(jì)數(shù)據(jù)行數(shù)。
語(yǔ)法:
SELECT COUNT(column) FROM tb_name
該 SQL 語(yǔ)法用于統(tǒng)計(jì)某一字段的數(shù)據(jù)行數(shù),COUNT() 內(nèi)不能是多個(gè)字段,但可以是 * 號(hào)。
例子:
<?php
$conn = @mysql_connect("localhost","root","root123");
if (!$conn){
die("連接數(shù)據(jù)庫(kù)失敗:" . mysql_error());
}
mysql_select_db("test", $conn);
$sql = "SELECT COUNT(uid) FROM user";
$row = mysql_fetch_array( mysql_query($sql) );
echo "共有用戶(hù): ",$row[0]," 位";
?>
瀏覽器顯示:
共有用戶(hù): 4 位
說(shuō)明
盡管 count() 中的參數(shù)可以是某個(gè)字段名,但如果只是想統(tǒng)計(jì)表中的數(shù)據(jù)記錄數(shù)目,從效率上考慮建議統(tǒng)計(jì)主鍵 count(id) 或直接使用 count(*) ,另外盡量避免使用列數(shù)據(jù)屬性為字符類(lèi)的。
既然都看到這了就為大家分享兩個(gè)例子吧
Mysql查詢(xún)統(tǒng)計(jì)函數(shù)中的count
今天我遇到一個(gè)題目:統(tǒng)計(jì)所有女生成績(jī)大于90以上有總數(shù)
我剛開(kāi)始就這樣寫(xiě):$sql = "select 女生成績(jī) from use where 成績(jī) > 90“;$result = mysql_query($sql);
$row = mysql_num_rows($result);echo "總數(shù)為:$row";
可是100條還行吧,如果是10000條那是不是要很慢?。?!后來(lái)一個(gè)朋友給我說(shuō)用count函數(shù),這我才想起來(lái)。
把上面的sql語(yǔ)句改為:
$sql = "select count(*),女生成績(jī) from use group by 女生成績(jī) having 女生成績(jī) > 90";
這樣查詢(xún)語(yǔ)句就快多了
單個(gè)select語(yǔ)句實(shí)現(xiàn)MySQL查詢(xún)統(tǒng)計(jì)次數(shù)
單個(gè)select語(yǔ)句實(shí)現(xiàn)MySQL查詢(xún)統(tǒng)計(jì)次數(shù)的方法用處在哪里呢?用處太多了,比如一個(gè)成績(jī)單,你要查詢(xún)及格得人數(shù)與不及格的人數(shù),怎么一次查詢(xún)出來(lái)?
MySQL查詢(xún)統(tǒng)計(jì)次數(shù)簡(jiǎn)單的語(yǔ)句肯定是這樣了:
select a.name,count_neg,count_plus from
(select count(id) as count_plus,name from score2 where score >=60 group by name) a,
(select count(id) as count_neg,name from score2 where score <=60 group by name) b
where a.name=b.name
即必須至少用2個(gè)語(yǔ)句。
今天剛好碰到發(fā)現(xiàn)mysql支持if,那就創(chuàng)造性的用if來(lái)實(shí)現(xiàn)吧:
select name, sum(if(score>=60,1,0)),sum(if(score<60,1,0)) from score2 group by name
單個(gè)select語(yǔ)句實(shí)現(xiàn)MySQL查詢(xún)統(tǒng)計(jì)次數(shù)的方法簡(jiǎn)單吧。
原理就是大于60,就賦值為1,那么sum就是計(jì)數(shù)了。
- MYSQL中有關(guān)SUM字段按條件統(tǒng)計(jì)使用IF函數(shù)(case)問(wèn)題
- 如何使用MySQL查詢(xún)某個(gè)列中相同值的數(shù)量統(tǒng)計(jì)
- 利用MySQL統(tǒng)計(jì)一列中不同值的數(shù)量方法示例
- 單個(gè)select語(yǔ)句實(shí)現(xiàn)MySQL查詢(xún)統(tǒng)計(jì)次數(shù)
- MYSQL每隔10分鐘進(jìn)行分組統(tǒng)計(jì)的實(shí)現(xiàn)方法
- MySQL中幾種數(shù)據(jù)統(tǒng)計(jì)查詢(xún)的基本使用教程
- mysql按照天統(tǒng)計(jì)報(bào)表當(dāng)天沒(méi)有數(shù)據(jù)填0的實(shí)現(xiàn)代碼
- MySQL按時(shí)間統(tǒng)計(jì)數(shù)據(jù)的方法總結(jié)
- mysql 獲取規(guī)定時(shí)間段內(nèi)的統(tǒng)計(jì)數(shù)據(jù)
- MySQL統(tǒng)計(jì)函數(shù)GROUP_CONCAT使用陷阱分析
- mysql滑動(dòng)訂單問(wèn)題原理與解決方法實(shí)例分析
相關(guān)文章
mysql查詢(xún)結(jié)果實(shí)現(xiàn)多列拼接查詢(xún)
本文主要介紹了mysql查詢(xún)結(jié)果實(shí)現(xiàn)多列拼接查詢(xún),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04master and slave have equal MySQL server UUIDs 解決方法
使用rsync配置了大量mysql,省去了大量編譯和配置的時(shí)間,隨逐個(gè)修改master和slave服務(wù)器的my.cnf,后,發(fā)現(xiàn)數(shù)據(jù)不能同步2013-07-07Mysql中如何批量替換某個(gè)字段的值:replace
這篇文章主要介紹了Mysql中如何批量替換某個(gè)字段的值:replace,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09mysql ndb集群備份數(shù)據(jù)庫(kù)和還原數(shù)據(jù)庫(kù)的方法
中午剛剛弄明白了MYSQL集群的備份與恢復(fù)。寫(xiě)下來(lái),以后就不用為這個(gè)問(wèn)題浪費(fèi)時(shí)間了2011-12-12mysql報(bào)錯(cuò):Deadlock found when trying to get lock; try restarti
這篇文章主要給大家介紹了關(guān)于mysql出現(xiàn)報(bào)錯(cuò):Deadlock found when trying to get lock; try restarting transaction的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-07-07