0

私のテーブル:

id | elite | pos
1  |   0   |  9  
2  |   1   |  8
3  |   0   |  7
4  |   1   |  6
5  |   0   |  5
6  |   1   |  4
7  |   0   |  3
8  |   1   |  2
9  |   0   |  1
10 |   1   |  0

私はこの簡単なクエリを持っています

SELECT id, elite FROM tbl LIMIT 0, 5 ORDER BY pos DESC

を返しますid 1 2 3 4 5。時間の経過とともに、これらの値は変化することになりました。id結果のカウントは常に5である必要がありますが、結果に。が付いたものが少なくとも1つある場合、結果には値が付いたものelite >= 1が含まれていてはなりません。したがって、結果に複数のが含まれていてはなりません。idelite1idelite >= 1

これはクエリ内で可能ですか?

4

1 に答える 1

1

UNION次のように、2 つのクエリを組み合わせることができます。

(SELECT * FROM tbl WHERE elite = 1 LIMIT 1)
UNION
(SELECT * FROM tbl WHERE elite = 0)
ORDER BY pos DESC LIMIT 5

必要な結果が得られます。UNION のMysqlリファレンスを確認してください

于 2012-12-07T08:34:17.143 に答える