#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. Хорошо, @Фрэнк, что это сработало