だから、私はこのような 'films'というテーブルを持っています。MySQLクエリ結果のソート中にグループ分けする方法は?
|id|title |rating|
|1 |Qwerty|4 |
|2 |Zxcv |0 |
|3 |Asdf |2 |
|4 |Jkl |0 |
|5 |Uiop |5 |
だから私はテーブルを照会すると、結果はタイトルでソートする必要がありますが、ゼロより大きい定格を持つすべてのデータが最初に示し、そのテーブルからたとえば、私が希望しても、結果が制限される可能性がこのようなクエリ結果。 UNION ALL
を使用しているとき、私はこのコードを試してみました
expected result with LIMIT 5
|id|title |rating|
|3 |Asdf |2 |
|5 |Uiop |5 |
|1 |Qwerty|4 |
|4 |Jkl |0 |
|2 |Zxcv |0 |
expected result with LIMIT 2
|id|title |rating|
|3 |Asdf |2 |
|5 |Uiop |5 |
、
(SELECT * FROM films WHERE rating > 0 ORDER BY title)
UNION ALL
(SELECT * FROM films WHERE rating = 0 ORDER BY title) LIMIT 5
しかし()
内部order by
が、無視されます。
これは実際にWOWです。どうもありがとう!! 非常に素晴らしいロジックです。回避策としてconcatとifを使用しています。 – Frumentius