PostgreSQL에서 MySQL의 ORDER BY FIELD() 시뮬레이션
PostgreSQL로 전환하는 MySQL 사용자로서 ORDER BY FIELD() 구문은 후자 데이터베이스에서 지원되지 않습니다. 이로 인해 PostgreSQL에서 동작을 에뮬레이트하는 방법에 대한 의문이 제기됩니다.
문제:
MySQL에서는 ORDER BY FIELD() 절을 사용하여 사용자 정의 순서를 정의할 수 있습니다. 값과 일련의 예상 값을 취하고 쿼리 결과는 제공된 값의 순서로 정렬됩니다.
예:
SELECT * FROM `currency_codes` ORDER BY FIELD(code, 'GBP', 'EUR', 'BBD', 'AUD', 'CAD', 'USD') DESC, name ASC
이 쿼리는 'GBP', 'EUR', 'BBD', 'AUD', 'CAD', 'USD'를 순서대로 입력하고 결과를 '이름'을 기준으로 오름차순으로 정렬합니다. 열.
해결책:
PostgreSQL에서는 CASE 문 조합과 결과 숫자 값 순서를 사용하여 비슷한 기능을 얻을 수 있습니다.
ORDER BY FIELD()의 동작을 시뮬레이션하는 방법은 다음과 같습니다. 절:
SELECT * FROM `currency_codes` ORDER BY CASE WHEN code='USD' THEN 1 WHEN code='CAD' THEN 2 WHEN code='AUD' THEN 3 WHEN code='BBD' THEN 4 WHEN code='EUR' THEN 5 WHEN code='GBP' THEN 6 ELSE 7 END,name;
이 쿼리에서:
이 기술을 사용하면 다음을 수행할 수 있습니다. 사전 정의된 순서에 따라 행의 우선순위를 지정하여 MySQL ORDER BY FIELD() 절의 기능과 거의 유사합니다.
위 내용은 PostgreSQL에서 MySQL의 ORDER BY FIELD()를 시뮬레이션하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!