2

最初にクエリをフィールドごとに並べ替え、次に「フィールドごと」のリストにないクエリをアルファベット順に並べ替えたいと思います。私がそれを行うと、結果は最初にフィールドリストにないすべてのフィールドを提供し、それらのフィールドの後に、結果はフィールドで順序付けられたフィールドを示します(正しく)

これは私のクエリです:

SELECT merk FROM user WHERE merk <> '' group by merk 
ORDER BY FIELD(merk,'Theo', 'Anne et Valentin') ASC, merk ASC

結果は次のようになります (最後の 2 つが ORDER BY FIELD レコードであることを確認してください)

'Binoche'
'Binoche Mini'
'Blac'
'Carrera'
'Christian Dior'
'D&G'
'Staffan Preutz Design'
'Tim Van Steenbergen'
'Tom Ford'
'Tom Tailor'
'Tommy Hilfiger'
'Vogue'
'Vuillet Vega'
'You\'s Eyeworks'
'Theo'
'Anne et Valentin'
4

2 に答える 2

2

FIELD(merk,'Theo', 'Anne et Valentin')値がリストにないときにが返されるためzero、 の代わりにFIELD(merk,'Theo', 'Anne et Valentin') ASC降順で並べ替えて、 のリストに存在する値がFIELD最初にソートされるようにします。

SELECT..
FROM..
WHERE....
ORDER BY FIELD(merk,'Theo', 'Anne et Valentin') DESC, merk ASC

ソース

于 2012-11-20T15:14:03.273 に答える
-1

この方法でも実行できるため、カスタム フィールドの並べ替え順序を変更する必要はありません: http://www.sqlfiddle.com/#!2/c9122/1

SELECT merk , FIELD(merk,'Theo', 'Anne et Valentin') 
FROM user 
WHERE merk <> '' group by merk 
ORDER BY 
    COALESCE(
      NULLIF(FIELD(merk,'Theo', 'Anne et Valentin'), 0)
      , 99999)      
    ASC

出力:

|                  MERK | FIELD(MERK,'THEO', 'ANNE ET VALENTIN') |
------------------------------------------------------------------
|                  Theo |                                      1 |
|      Anne et Valentin |                                      2 |
|            Tom Tailor |                                      0 |
| Staffan Preutz Design |                                      0 |
|               Carrera |                                      0 |
|               Binoche |                                      0 |
|       You''s Eyeworks |                                      0 |
|        Tommy Hilfiger |                                      0 |
|   Tim Van Steenbergen |                                      0 |
|        Christian Dior |                                      0 |
|          Binoche Mini |                                      0 |
|                 Vogue |                                      0 |
|              Tom Ford |                                      0 |
|                   D&G |                                      0 |
|                  Blac |                                      0 |
|          Vuillet Vega |                                      0 |
于 2012-11-20T16:07:26.223 に答える