mysql 求總行數 Mysql 獲取記錄總行數

2021-10-17 20:09:07 字數 1697 閱讀 1434

做實驗的表:

mariadb [test]> select * from prefix_user;

| user_id | username  | age | email |

|       2 | username2 |   2 |  null |

|       3 | username3 | 111 |     1 |

|       4 | username3 |  10 |     1 |

|       5 | username3 |  10 |  null |

|       6 | username3 |  10 |  null |

5 rows in set (0.01 sec)

一般情況:

直接用count() 函式

select count(*) from 表 where 條件;

或者select count(主鍵) from 表 where 條件;

其中主鍵和*的區別主要是: * 會統計 null 的行,

select count(*) from prefix_user where 1; // 5行

select count(email) from prefix_user ;// 2行,忽略了值為null的

當和group by 混用的時候, count() 函式返回的結果是group by之後的結果,例如

mariadb [test]> select count(*) from prefix_user group by age;

| count(*) |

|        1 |

|        3 |

|        1 |

3 rows in set (0.01 sec)

如果我們想獲取總共有多少個年齡不同的行數,有兩種解決方案,

第一種, 使用子語句

select count(*) from ( select count(*) from prefix_user group by age) as a;// 結果為3

// 不使用 sql_calc_found_rows

mariadb [test]> select count(*) from prefix_user group by age limit 2;

| count(*) |

|        1 |

|        3 |

2 rows in set (0.00 sec)

mariadb [test]> select found_rows();

| found_rows() |

|            3 |

1 row in set (0.00 sec)

// 使用 sql_calc_found_rows 關鍵字

mariadb [test]> select sql_calc_found_rows count(*) from prefix_user group by age limit 2;

| count(*) |

|        1 |

|        3 |

2 rows in set (0.00 sec)

mariadb [test]> select found_rows();

| found_rows() |

|            3 |

1 row in set (0.00 sec)

mysql 表查詢結果 總行數計算

一般的查詢語句是這樣的 select id,name from systemevents where 1 1 limit 9,10 select from systemevents where 1 1 limit 9,10 這樣查詢出來的結果 要統計行數很麻煩 有乙個方法可以將上次查詢的結果 統計出...

MySQL中查詢表的總行數該用什麼命令?

我們經常會使用到乙個sql語句,就是查詢某張表的總行數。常常使用的查詢命令有幾種,比如 select count from t,select count id from t id為主鍵 select count 1 from t,select count 某普通字段 from t以及show tab...

mysql 查詢表總行數字段 天使數字查詢表

時間數字 00 00 此刻,你與神同在。01 01 神正在與你對話,請保持正向。02 02 一切都會安好,請保持信任。03 03 事物現在正準備為了你往前移動。04 04 現在正是落實計畫的好時機,然後與它一起飛翔。05 05 乙個重要的改變正在發生。06 06 將你周圍需要的協助與合作凝聚起來。0...