> 데이터 베이스 > MySQL 튜토리얼 > SQL의 IN() 절을 사용할 때 순서를 어떻게 유지할 수 있습니까?

SQL의 IN() 절을 사용할 때 순서를 어떻게 유지할 수 있습니까?

DDD
풀어 주다: 2025-01-20 14:53:08
원래의
276명이 탐색했습니다.

How Can I Preserve Ordering When Using SQL's IN() Clause?

SQL IN() 절을 사용하여 순서 유지

결과를 정렬할 때 IN() 절에 지정된 값의 순서와 일치하는 결과를 유지하는 것이 어려울 수 있습니다. 이 문제는 하위 쿼리나 임시 테이블을 사용하여 해결할 수 있지만 더 효율적인 솔루션이 있습니까?

MySQL에서는 FIELD() 함수가 실행 가능한 옵션을 제공합니다. FIELD() 함수를 활용하면 IN() 절에 있는 값의 순서에 따라 정렬을 직접 조작할 수 있습니다.

<code class="language-sql">SELECT name, description, ...
FROM ...
WHERE id IN([ids, 无序])
ORDER BY FIELD(id, [ids, 有序])</code>
로그인 후 복사

FIELD() 함수는 첫 번째 인수로 전달된 값의 제공된 목록에서 인덱스를 결정합니다. 반환된 인덱스는 목록에 있는 값의 순서를 나타냅니다.

예:

<code class="language-sql">FIELD('a', 'a', 'b', 'c')  -- 返回 1
FIELD('a', 'c', 'b', 'a')  -- 返回 3</code>
로그인 후 복사

FIELD() 함수를 사용하고 IN() 절과 FIELD() 함수에서 값의 해당 순서를 유지하면 결과의 순서를 원하는 순서와 효과적으로 일치시킬 수 있습니다.

위 내용은 SQL의 IN() 절을 사용할 때 순서를 어떻게 유지할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿