"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 데이터베이스 레코드를 특정 순서로 정렬하는 방법

데이터베이스 레코드를 특정 순서로 정렬하는 방법

2025-05-01에 게시되었습니다
검색:923

How to Order Database Records by Multiple Values in a Specific Sequence?

Multi-Value 정렬 데이터베이스 레코드

]

인덱스 키와 비 인덱스 필드가있는 테이블이 있다고 가정합니다 x_field . 특정 값이있는 모든 레코드를 찾아 반환하고 여러 값에 따라 특정 순서로 결과를 정렬해야합니다.

예를 들어, 다음 테이블이있는 경우 :

id x_field ] 124 a a a 125 a 126 b &&] 127 x x 132 b 133 p p p p p 135
123
124 a
131
134
&&]
i

i

]]]] x_field = 'f', 'p', 'i', 'a' : 인 다음 순서로 결과를 정렬하기를 원합니다. id x_field x_field 127 f f &&] 135 i 125 129 선택하다 * 테이블에서 이드가 아닌 곳 (126) x_field 'f', 'p', 'i', 'a'
그리고 당신은 순서가
f f
a
a
당신은 처음에 다음 쿼리를 사용해 보았습니다 :

그러나이 쿼리는 결과가 없습니다.
SELECT *
FROM table
WHERE id NOT IN (126)
ORDER BY x_field 'f', 'p', 'i', 'a'
문을 사용하여 각

x_field

값에 숫자 값을 할당하여 원하는 순서 :

]입니다. ... 어디 x_field in ( 'f', 'p', 'i', 'a') ... 주문 케이스 x_field 'f'때 1 'P'때 2 'I'때 3 'a'때 4 else 5- in in clause에없는 폴백 값의 경우 (예 : x_field = 'b') 끝, id

이 쿼리는 값 1을
...
WHERE
   x_field IN ('f', 'p', 'i', 'a') ...
ORDER BY
   CASE x_field
      WHEN 'f' THEN 1
      WHEN 'p' THEN 2
      WHEN 'i' THEN 3
      WHEN 'a' THEN 4
      ELSE 5 -- 对不在 IN 子句中的值(例如:x_field = 'b')的回退值
   END, id
가 아닌 값의 경우 (예 : 'b') 5의 폴백 값이 할당됩니다. 그런 다음이 값과

id 필드에 따라 결과를 오름차순 순서로 정렬하십시오. 이 메소드는 x_field 값이 내림차순/오름차순 순서가 아닌 경우에도 결과가 원하는 순서로 정렬되도록합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3