在很多分頁的程式中都這樣寫:
select count(*) from `table` where
......; 查出符合條件的記錄總數
select * from `table` where ...... limit m,n; 查詢當頁要顯示的資料
這樣的語句可以改成:
select sql_calc_found_rows * from `table` where
...... limit m, n;
或select sql_calc_found_rows name,email from `table` where
...... limit m, n;
select found_rows();//也相當於一條sql語句,其中就把found_rows()當做普通sql語句中的乙個字段使用就行,它的值就是上面不包含limit的記錄數
這樣只要執行一次較耗時的複雜查詢可以同時得到與不帶limit同樣的記錄條數
注意:只能在mysql4.0.0以上版本有效
order by和limit結合使用的問題
在mysql中我們常常用order by來進行排序,使用limit來進行分頁,當需要先排序後分頁時我們往往使用類似的寫法select from 表名 order by 排序字段 limt m,n。但是這種寫法卻隱藏著較深的使用陷阱。在排序欄位有資料重複的情況下,會很容易出現排序結果與預期不一致的問題...
delete與limit的結合
在日常的開發工作中,或多或少都會遇到刪除單條資料的時候,那平時是怎麼寫的呢,是不是這樣 delete from table name where id 1 在刪除操作執行的過程中,如果命中了第一條資料,執行完刪除操作後還會去掃瞄全表,但是如果加上了limit 1 執行完就return了,效率高低,一...
Mysql查詢使用Limit優化
在某些情況下,如果明知道查詢結果只有乙個,sql語句中使用limit 1會提高查詢效率,感興趣的朋友可以了解下哈,希望對你優化mysql查詢有所幫助 在某些情況下,如果明知道查詢結果只有乙個,sql語句中使用limit 1會提高查詢效率。例如下面的使用者表 主鍵id,郵箱,密碼 複製 如下 crea...