집 >데이터 베이스 >MySQL 튜토리얼 >특정 시퀀스의 여러 값으로 SQL 쿼리 결과를 정렬하려면 어떻게 해야 합니까?
여러 값을 특정 순서로 정렬
SQL에서는 쿼리 결과를 여러 값으로 정렬할 수 있지만 해당 값이 ORDER BY 절에 포함되어야 하는 경우에만 가능합니다. 제공된 예와 같이 ORDER BY 절에 포함되지 않은 여러 값을 기준으로 정렬하려고 하면 쿼리에서 결과가 반환되지 않습니다.
여러 값을 특정 순서로 정렬하려면 CASE 문을 사용하는 것이 좋습니다.
<code class="language-sql">... 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</code>
이 예에서 CASE 문은 x_field 열의 각 값에 숫자 우선순위를 할당합니다('f'는 1, 'p'는 2 등). 그런 다음 결과는 이 우선순위를 기준으로 정렬된 다음 각 우선순위 수준 내에서 고유한 정렬을 보장하기 위해 id 열을 기준으로 정렬됩니다.
CASE 문을 사용하면 여러 값에 대해 원하는 정렬 순서를 지정할 수 있습니다. 이 예에서는 결과가 CASE 문에 지정된 대로 'f', 'p', 'i' 및 'a' 순서로 정렬됩니다.
위 내용은 특정 시퀀스의 여러 값으로 SQL 쿼리 결과를 정렬하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!