2011-05-01 75 views
0

我使用where子句創建分頁。 我需要知道偏移的真實行爲。mysql偏移量的真實行爲

  1. 是否根據與where子句匹配的所有行計算偏移量?或者
  2. 偏移量按照id計算並考慮所有行。例如。如果指定偏移量爲5,則將從表中的第6行開始返回行,即使前4行也不匹配where子句?

編輯:我想確定,因爲第二個行爲將是完全不正確的,並導致問題。 感謝您的回答。我無法評論,因爲我的瀏覽器在javascript和ajax上失敗了。

+1

您應該可能會顯示一些代碼 – 2011-05-01 14:25:37

+0

以及當您嘗試使用 – 2011-05-01 14:27:43

+0

時會發生什麼(結果)如果選項#2是正確的,那麼執行分頁將會非常低效,您不覺得嗎? – 2011-05-01 14:32:18

回答

4

是的偏移是基於匹配where子句的所有行計算的。 試試吧

1

您是否在談論使用LIMIT條款? LIMIT對成功的比賽數量進行了限制,而不是總比賽數量。限制的偏移量部分是根據匹配來計算的,而不是所有符合條件的行。 MySQL不一定會以給定的順序掃描行,並且可能根本不掃描某些行,所以如果失敗的匹配索引較低,它不會縮短行的更改時間。