單個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就是計數了。
MySQL查詢結果按某值排序
MySQL查詢中的非空問題
教您如何調整MySQL查詢緩沖
MySQL查詢優化器的工作原理
深度解析MySQL查詢緩存機制