나는 내 데이터베이스에서 원하는 순서대로 정보를 얻는 방법을 알아 내려고하고있다. 예를 들어, 내 데이터베이스에 아래의 이름이 :MYSQL 조합 또는 주문 하시겠습니까?
Matt
Jimmy
Craig
Jenny
Sue
나는이 순서대로을 얻으려면 :
Sue
Craig
Jimmy
Matt
Jenny
내가 MYSQL을 사용하는 것을 할 것 어떻게?
나는 내 데이터베이스에서 원하는 순서대로 정보를 얻는 방법을 알아 내려고하고있다. 예를 들어, 내 데이터베이스에 아래의 이름이 :MYSQL 조합 또는 주문 하시겠습니까?
Matt
Jimmy
Craig
Jenny
Sue
나는이 순서대로을 얻으려면 :
Sue
Craig
Jimmy
Matt
Jenny
내가 MYSQL을 사용하는 것을 할 것 어떻게?
사용 :
ORDER BY CASE t.name
WHEN 'Sue' THEN 1
WHEN 'Craig' THEN 2
WHEN 'Jimmy' THEN 3
WHEN 'Matt' THEN 4
WHEN 'Jenny' THEN 5
ELSE 6
END
주문의 값에 따라 임의의 값을 할당하기 위해 CASE 문을 사용합니다. (내가 제대로 귀하의 요구 사항을 이해하고있는 경우)
물론, 당신은 이런 식으로 작업을 수행 할 수 있습니다
order by field(t.name, 'Jenny', 'Matt', 'Jimmy', 'Craig', 'Sue') desc
편집 :
사실, 당신은 이미의 번호와 일반적인 경우를 처리하려면 알려진 값과 알 수없는 값의 수를 알고있는 경우 일반적으로 알려진 값을 결과 집합의 시작 부분 (미리 정의 된 순서대로)과 그 뒤에 오는 나머지 부분으로 나타낼 수 있습니다. 이를 위해 함수 인수 목록의 역순으로 사전 정의 된 값을 추가하고 순서를 내림차순으로 지정해야합니다.
'Sue'는 먼저 '012'를 표시하고 'Craig'- 초 (4가 반환 됨) 등 'Jenny'까지 표시됩니다. 인수 목록에없는 값의 경우 field
은 0을 반환하므로 결과 집합의 끝으로 이동합니다.
참조 : FIELD
그래서 당신이 사용하고자하거나 무작위 데이터베이스이 아닌 다른 이름을 가지고하지 않습니다 어떤 알고리즘이있다? – Cellfish