2011-09-09 58 views
0

如何使用SQL_CALC_FOUND_ROWS和DISTINCT選項構建MySQL查詢?MySQL多選選項

+1

這是你的作業嗎? – Marco

+0

不...個人項目。 –

+0

恩,你把它們放入查詢中?我真的不明白這個問題是什麼? –

回答

0

SQL_CALC_FOUND_ROWS僅適用於LIMIT子句,並允許您使用信息功能FOUND_ROWS()查找完整記錄集中的行數,而無需運行另一個查詢來對行進行計數。

SELECT SQL_CALC_FOUND_ROWS * FROM ... WHERE ... LIMIT X;

SELECT FOUND_ROWS();

這樣以來DISTINCTwhere conditions關鍵字實際上影響到完整的記錄集,SQL_CALC_FOUND_ROWS功能已經沒有什麼beeing冷落的概念。據我所知,DISTINCT關鍵字沒有可用的類似信息功能,除了運行查詢兩次外,沒有別的選擇。

SELECT DISTINCT * FROM ... WHERE ...;

SELECT COUNT(*) FROM ... WHERE ...;


注意:您仍然可以既SQL_CALC_FOUND_ROWSDISTINCT在同一個查詢中使用,但FOUND_ROWS();將只能看到由LIMIT條款排除在外。