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 중국어 웹사이트의 기타 관련 기사를 참조하세요!