MySQL 데이터베이스에서 데이터를 검색할 때 결과를 특정 순서로 정렬해야 하는 경우가 많습니다. 순서. IN() 메서드를 사용하면 미리 정의된 값 목록을 기반으로 레코드를 검색할 수 있지만 결과 집합 내에서 IN() 절에 있는 값의 순서를 유지하려는 경우 문제가 발생합니다.
문제:
정렬된 ID 번호가 포함된 PHP 배열이 있고 IN() 메서드를 사용하여 MySQL 테이블에서 해당 레코드를 가져오려고 한다고 가정해 보겠습니다. 하지만 이러한 레코드는 IN() 절에 지정된 것과 동일한 순서로 반환되어야 합니다.
해결책:
이를 해결할 수 있는 강력한 함수 챌린지는 FIELD()입니다. 주로 문자열 함수로 알려져 있지만 숫자 데이터에도 효과적으로 작동합니다. FIELD()를 사용하면 IN() 절에서 원하는 값 순서를 지정할 수 있으며 MySQL은 이에 따라 결과를 정렬합니다.
예:
ID 번호가 정렬된 다음 PHP 배열을 고려해 보겠습니다.
$ids = [4, 7, 3, 8, 9];
기사라는 테이블에서 해당 레코드를 검색하는 동시에 ID 순서에 따라 다음 MySQL 쿼리를 사용할 수 있습니다.
SELECT * FROM articles ORDER BY FIELD(id, 3, 2, 5, 7, 8, 1);
이 쿼리에서는 FIELD() 함수를 사용하여 두 번째 매개변수 값의 순서에 따라 결과를 정렬합니다. IN() 절에 지정된 순서는 [4, 7, 3, 8, 9]이지만 결과는 3, 2, 5, 7, 8, 1로 반환되기를 원합니다. 따라서 값을 제공합니다. FIELD()의 두 번째 매개변수와 동일한 순서로 지정됩니다. 이렇게 하면 기사가 원하는 순서로 반환됩니다.
위 내용은 IN() 및 FIELD()를 사용하여 사용자 정의 시퀀스로 MySQL 쿼리 결과를 정렬하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!