"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 보다 정확한 검색 결과를 얻기 위해 WHERE 절에 여러 열을 결합하려면 어떻게 해야 합니까?

보다 정확한 검색 결과를 얻기 위해 WHERE 절에 여러 열을 결합하려면 어떻게 해야 합니까?

2024-11-04에 게시됨
검색:145

How can I combine multiple columns in a WHERE clause for more accurate search results?

고급 검색을 위해 WHERE 절에서 CONCAT() 활용

데이터베이스 쿼리의 일반적인 작업은 여러 열에서 데이터를 검색하는 것입니다. 예를 들어 이름과 성을 위한 별도의 열이 있는 테이블에서 두 열 모두에 대해 검색어를 일치시키려고 할 수 있습니다.

그러나 사용자의 검색어에 로 구분된 이름과 성이 결합된 경우 공백을 사용하면 전통적인 LIKE 비교를 통해 이름이나 성이 일치하는 모든 개인을 반환합니다. 검색을 세분화하려면 MySQL CONCAT() 함수를 사용할 수 있습니다.

원래 접근 방식 및 제한 사항:

처음에는 쿼리에서 first_name 및 last_name 열, 두 열 모두에서 일치 허용:

select * from table where first_name like '%$search_term%' or last_name like '%$search_term%';

하는 테이블에서 * 선택 이 접근 방식은 검색어가 "Larry Smith"인 경우에도 결과 집합에 "Larry"를 포함하는 것과 같이 단일 단어 일치를 기반으로 레코드를 검색하는 문제가 있습니다.

CONCAT( ) 함수:

이 제한 사항을 해결하기 위해 여러 표현식을 단일 문자열로 연결하는 CONCAT() 함수를 활용하도록 쿼리가 수정되었습니다.

select * from table where concat_ws(' ',first_name,last_name) like '%$search_term%';

이 쿼리는 이름과 성 값을 공백으로 구분하여 연결하고 결과 문자열을 검색어와 비교합니다. . 두 열을 단일 표현식으로 결합하면 전체 이름과의 일치가 보장됩니다.

실행 고려 사항:

쿼리가 의도한 대로 작동해야 하지만 주목할 가치가 있습니다. 쿼리 끝에 CONCAT() 함수를 실행하면 쿼리 중간에 배치하는 것보다 더 나은 성능을 얻을 수 있습니다.

결론적으로, WHERE 절에 MySQL CONCAT() 함수를 사용하면 더 많은 이점을 얻을 수 있습니다. 여러 열을 검색하는 정확한 접근 방식을 통해 사용자의 의도에 맞는 맞춤형 결과를 제공합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3