2014-04-27 3 views
0

MySQL을 사용하여 올바른 방식으로 출력 데이터를 정렬 할 수 있어야합니다. 지금까지 ORDER BY을 사용하고 있으며 모든 것이 제대로 작동하고있었습니다. 나는 그들이 내가 원하는 방식으로 정렬되지 않습니다 선택을 얻을 때mysql의 특정 기준에 따라 열을 정렬하십시오.

SELECT * FROM Vehicles WHERE MainGroup=Vehicle ORDER BY Subgroup; 

: 표 VEHICLES :

ID | Name | MainGroup | SubGroup 
1 | A | Vehicle | Truck 
2 | B | Vehicle | Car 
3 | C | Vehicle | Car 
4 | D | Vehicle | Truck 
5 | E | Vehicle | Truck 
6 | F | Vehicle | Motorbike 

I이 사용하던

이의 나는 이런 식으로 뭔가 있다고 가정 해 봅시다 왜냐하면 지금 내가 선택한 것들의 방법을 결정할 수 있기를 원하기 때문입니다. 이 출력을 Car, Truck, Motorbike 또는 다른 방법으로 원한다고 가정 해 봅시다. 이것을 달성하는 방법? order by을 사용하여이 작업을 수행 할 수 있습니까?

답변

3

사용 field() :

SELECT * 
FROM Vehicles 
WHERE MainGroup=Vehicle 
ORDER BY field(Subgroup, 'Car', 'Truck', 'Motorbike'); 
+0

내가 한 SQL 쿼리에서 여러 필드를 가질 수있다? –

+0

@ user123_456 . . 나는 그 대답이 "예"라고 생각하지만, 당신이 의미하는 것이 확실하지 않습니다. 'field()'는 단지 MySQL 함수이며 http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_field에 문서화되어 있습니다. –

+0

문제는 각 하위 그룹별로 하나씩 주문을해야한다는 것입니다. 예를 들어 하나의 열 (가격)이 있고 이와 같은 작업을 수행 할 때 잘못된 결과가 발생합니다. '선택 * 차량 어디 MainGroup = 차량 ORDER BY 필드 (하위 그룹, '자동차', '트럭', '오토바이'), 가격 ASC, ' –

관련 문제