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')返回,所以不是,而是按降序排序,这样列表中的值将首先排序。zeroFIELD(merk,'Theo', 'Anne et Valentin') ASCFIELD

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 回答