Multi-Value 정렬 데이터베이스 레코드
] 인덱스 키와 비 인덱스 필드가있는 테이블이 있다고 가정합니다 x_field
. 특정 값이있는 모든 레코드를 찾아 반환하고 여러 값에 따라 특정 순서로 결과를 정렬해야합니다.
예를 들어, 다음 테이블이있는 경우 :
x_field | |
---|---|
123 | |
] | |
a | a |
124 | a |
125 | |
b | |
x | |
131 | x |
132 | b |
133 | p |
134 | |
&&] | p
i
]]]] | 그리고 당신은 순서가 | x_field = 'f', 'p', 'i', 'a'
---|---|
id | x_field |
f | ff | f
i | |
a | 125 |
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
...
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