1

私が

SELECT * FROM table_A WHERE id = 2321 order by color asc, color = 49, color = 2;

これは、すべての色 = 2、次に色 = 49、そして他のすべての色を返します。

しかし、結果によるグループのみが必要です。

SELECT * FROM table_A WHERE id = 2321 GROUP BY color ORDER BY color asc, color = 49, color = 2;

結果ごとにグループを返しますが、順序は無視されます

私の質問は、2、次に 49、次にその他の色を返し、「色」をグループ化する方法です。

4

2 に答える 2

2

GROUP BYここでは必要ありません。必要なのは使用することだけですFIELD()

ORDER BY FIELD(color, 49, 2) DESC

Color = 2これにより、リストの最初に並べ替えられ、49次に他の色が続きます。

于 2013-05-28T03:55:36.250 に答える