:次の質問に が、私はあなたが行を選択すると、MySQLが行インデックスの種類を作成し、LIMITとOFFSET句はその番号によって、このリストを遮断すると思いました。問題は、間違った値やフィールドの組み合わせを使って行を並べ替えることがほとんど同じ値になってしまうことです。ここで順序改ページ
は、MySQL ;-)
ソリューションを優先DESC BYのでORDERのように、IDのように、フォールバックとして、より信頼性の高いソートフィールドを持つことは常にある多くの「知性」の形に仮定して、私のミスです、id ASC
これは厳密なMySQLの質問です。なぜLIMIT OFFSET句がORDER BYの前に適用されるのでしょうか?何が欠けていますか?ここで
は、まず我々が優先と呼ばれるフィールドが注文した行のリストを選択し、例です。結果はこのようになります
SELECT d0_.name, d0_.id AS id_0, d0_.priority AS priority_1 FROM destination d0_ WHERE d0_.active = 1 ORDER BY d0_.priority DESC;
:
それから私は選択したいですこのリストの最初の10行は、次のクエリを使用します。
SELECT d0_.name, d0_.id AS id_0, d0_.priority AS priority_1 FROM destination d0_ WHERE d0_.active = 1 ORDER BY d0_.priority DESC LIMIT 10 OFFSET 10;
そして、私はこの結果を持っている:リストは「シエラ・ネバダ」に「グランドバリラ」からなっていないのはなぜ
を?
この問題は実際の注文ではなく、一部の行に届かないことがあります。 Vallnord Ordino-Arcalísのように。 OFFSET値を変更すると、すべての行が処理されず、イベントによって行が繰り返されます。
これは基本的な質問です。しかしこれは、Symfonyの "KnpPaginatorBundle(2.5.3)"を使うときに、私に最後の問題を与えています。私はPHPコードの問題だと思ったが、mysqlクエリは私にこの予期しない結果を与えている。
何が起こっているの助けや手掛かりですか?
ありがとうございます!
あなたの質問はあまりにも厄介なIMO私には答えを与えるが、 "Grandvalira"から "Sierra nevada"までの範囲はどういう意味か分かりません。完全なアルファベット順ソートリストでは、どちらの場所も先頭または最後になりません。あなたの質問を簡素化し、ちょうどポイントに到達してみてください。 –