본문 바로가기
여러가지/Database

MariaDB에서 특정 '텍스트'를 포함하여 sql 검색하기 (쿼리문)

by 포스트it 2024. 10. 23.
728x90
반응형

 

안녕하세요, 이번 포스팅에서는, MariaDB를 사용하여 특정 텍스트가 포함된 쿼리문 작성입니다.

user_id 컬럼에서 '테스트'라는 문자열이 포함된 모든 레코드를 찾는 예제로 알아보겠습니다.

이러한 작업은 LIKE 연산자나 REGEXP를 활용하여 손쉽게 해결할 수 있습니다.

1. LIKE 연산자를 사용한 검색

LIKE 연산자는 문자열 패턴 매칭을 위해 가장 많이 사용되는 연산자 중 하나입니다. 와일드카드 문자인 %를 사용하여 원하는 패턴을 지정할 수 있습니다.

SELECT user_id FROM your_table_name WHERE user_id LIKE '%테스트%';
  • %테스트%: user_id 내에 '테스트'라는 문자열이 어디에든 포함되어 있는지를 찾습니다.
  • your_table_name은 실제 사용하시는 테이블 이름으로 변경해주세요.

2. 대소문자 구분 없이 검색하기

MySQL과 MariaDB에서는 기본적으로 문자열 비교 시 대소문자를 구분합니다. 만약 대소문자에 상관없이 검색하고 싶다면 COLLATE 절을 사용할 수 있습니다.

SELECT user_id FROM users WHERE user_id LIKE '%테스트%' COLLATE utf8mb4_general_ci;
  • utf8mb4_general_ci는 대소문자를 구분하지 않는(collation insensitive) 설정입니다.

3. REGEXP를 사용한 정규식 검색

보다 복잡한 패턴 매칭이 필요하다면 REGEXP를 사용할 수 있습니다.

SELECT user_id FROM users WHERE user_id REGEXP '테스트';

REGEXP를 사용하면 정규식을 활용하여 더욱 다양한 패턴의 문자열을 검색할 수 있습니다.


4. 주의 사항

  • 퍼포먼스 이슈: LIKE '%테스트%'와 같이 앞에 %가 오는 경우 인덱스를 사용할 수 없어 검색 속도가 느려질 수 있습니다. 데이터 양이 많다면 Full-Text Search 등의 대안을 고려해보세요.
  • 인코딩 설정: COLLATE를 사용할 때는 데이터베이스와 테이블의 인코딩 설정을 확인하여 맞는 값을 사용해야 합니다.

5. 마무리

이상으로 MariaDB에서 특정 문자열이 포함된 데이터를 검색하는 방법에 대해 알아보았습니다. LIKE와 REGEXP는 문자열 검색에 매우 유용한 도구이므로 상황에 맞게 활용하시기 바랍니다.

더 궁금하신 사항이나 추가적인 도움이 필요하시면 댓글로 남겨주세요. 감사합니다!

728x90
반응형

댓글