統計數據行數
SELECT COUNT() FROM 語法用於從數據表中統計數據行數。
語法:
SELECT COUNT(column) FROM tb_name
該 SQL 語法用於統計某一字段的數據行數,COUNT() 內不能是多個字段,但可以是 * 號。
例子:
復制代碼 代碼如下:
<?php
$conn = @mysql_connect("localhost","root","root123");
if (!$conn){
die("連接數據庫失敗:" . mysql_error());
}
mysql_select_db("test", $conn);
$sql = "SELECT COUNT(uid) FROM user";
$row = mysql_fetch_array( mysql_query($sql) );
echo "共有用戶: ",$row[0]," 位";
?>
浏覽器顯示:
共有用戶: 4 位
說明
盡管 count() 中的參數可以是某個字段名,但如果只是想統計表中的數據記錄數目,從效率上考慮建議統計主鍵 count(id) 或直接使用 count(*) ,另外盡量避免使用列數據屬性為字符類的。
既然都看到這了就為大家分享兩個例子吧
Mysql查詢統計函數中的count
今天我遇到一個題目:統計所有女生成績大於90以上有總數
我剛開始就這樣寫:$sql = "select 女生成績 from use where 成績 > 90“;$result = mysql_query($sql);
$row = mysql_num_rows($result);echo "總數為:$row";
可是100條還行吧,如果是10000條那是不是要很慢啊!!後來一個朋友給我說用count函數,這我才想起來。
把上面的sql語句改為:
$sql = "select count(*),女生成績 from use group by 女生成績 having 女生成績 > 90";
這樣查詢語句就快多了
單個select語句實現MySQL查詢統計次數
單個select語句實現MySQL查詢統計次數的方法用處在哪裡呢?用處太多了,比如一個成績單,你要查詢及格得人數與不及格的人數,怎麼一次查詢出來?
MySQL查詢統計次數簡單的語句肯定是這樣了:
復制代碼 代碼如下:
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個語句。
今天剛好碰到發現mysql支持if,那就創造性的用if來實現吧:
復制代碼 代碼如下:
select name, sum(if(score>=60,1,0)),sum(if(score<60,1,0)) from score2 group by name
單個select語句實現MySQL查詢統計次數的方法簡單吧。
原理就是大於60,就賦值為1,那麼sum就是計數了。