MariaDB: для заказа по определенному значению Column_A и Column_B

#mariadb

Вопрос:

У меня есть такой стол, как:

  ------------------- ----------- 
| FieldId           | FieldValue|
 ------------------- ----------- 
| field_klsciv50    | Apple     |
| field_kbgankim    | Fish      |
| field_klsciv50    | Banana    |
| field_kijagc5r    | Cow       |
| field_kijagc5r    | Dog       |
| field_klsciv50    | Orange    |
 ------------------- ----------- 
 

Как мне сделать так, чтобы заказ был:

  ------------------- ----------- 
| FieldId           | FieldValue|
 ------------------- ----------- 
| field_klsciv50    | Apple     |
| field_klsciv50    | Banana    |
| field_klsciv50    | Orange    |
| field_kijagc5r    | Cow       |
| field_kijagc5r    | Dog       |
| field_kbgankim    | Fish      |
 ------------------- ----------- 

 

Не могу понять, как упорядочить его по полю фруктов с его FieldId значением field_klsciv50 и значениями выше.

Спасибо!

Комментарии:

1. Вы хотите, чтобы порядок в вашей таблице был таким или из запроса? Для запроса просто ORDER BY FieldId DESC, FieldValue

2. @Scratte спасибо, это должно быть специфично для идентификатора поля, в приведенном выше случае следует сортировать только записи с field_klsciv50 идентификатором поля.

3. Ты не можешь этого сделать. Вы можете сортировать свой результирующий набор или не сортировать его.

Ответ №1:

Вы можете разделить таблицу по FieldId значению, отсортировать нужную половину и затем снова объединить их:

 SELECT FieldId, FieldValue
FROM
    (SELECT FieldId, FieldValue
     FROM MyTable
     WHERE FieldId = 'field_klsciv50'
     ORDER BY FieldValue
    )
UNION ALL
SELECT FieldId, FieldValue
FROM MyTable
WHERE FieldId != 'field_klsciv50'
 

Комментарии:

1. Хорошо, @Фрэнк, что это сработало