집 >데이터 베이스 >MySQL 튜토리얼 >SQL에서 검색 정밀도가 감소하는 단일 행을 어떻게 효율적으로 찾을 수 있습니까?
여러 SELECT 문을 사용하여 정밀도가 감소하는 단일 행 찾기
데이터베이스 작업에서는 다음을 사용하여 단일 행을 검색해야 할 수도 있습니다. 예를 들어, 결과를 찾을 때까지 검색 기준을 점진적으로 줄이는 것이 포함됩니다. 테이블:
문제:
테이블에서 다음 조건을 충족하는 행을 찾습니다.
이 쿼리에 대한 결과가 없으면 다음 쿼리를 시도해 보십시오.
있는 경우 아직 이 쿼리에 대한 결과가 없으면 다음 쿼리를 시도해 보세요.
해결책:
UNION ALL 문을 사용하면 이러한 모든 쿼리를 한 번에 실행할 수 있으므로 정확도가 떨어지는 검색이 가능합니다. 이 문은 다음과 같이 다양한 쿼리 결과를 지정된 순서로 병합합니다.
SELECT * FROM image WHERE name = 'text' AND group_id = 10 UNION ALL SELECT * FROM image WHERE name = 'text' UNION ALL SELECT * FROM image WHERE group_id = 10 LIMIT 1;
최적화:
성능을 향상하려면 적절한 인덱스를 생성해야 합니다. 중요한. 이 예에서는 다음 열에 인덱스를 생성하는 것이 좋습니다.
LIMIT 1 절을 추가하여 Postgres 기준을 충족하는 첫 번째 행을 찾은 후 추가 쿼리를 중지하여 성능을 최적화할 수 있습니다.
일반화:
이 방법은 다양한 검색 매개변수를 사용하여 일반화할 수 있습니다. UNION ALL 문 안에 SELECT 문을 더 추가하면 됩니다.
정렬:
LIMIT 1 절은 단일 행만 반환하지만 관련성을 기준으로 결과를 정렬하려는 경우 이 방법은 실용적이지 않을 수 있습니다. 이 경우 정렬을 수행하려면 더 복잡한 쿼리가 필요합니다.
위 내용은 SQL에서 검색 정밀도가 감소하는 단일 행을 어떻게 효율적으로 찾을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!