커피와 개발자

데이터 검색시 대, 소문자 구별 본문

데이터베이스/SQL

데이터 검색시 대, 소문자 구별

광박이 2009. 8. 3. 10:01
728x90

데이터 검색 대문자, 소문자 구별

웹 프로그래밍을 하다가 보면 검색 기능을 구현할 때가 있다.

상품페이지에서도, 방명록이나 게시판에서도...
이러한 기능을 구현할 때 어떤 특정 필드의 값과 검색어를 비교하여 검색한 데이터를 가져오는데 영어의 단어로 검색할 때 발생할 수 있는 문제점이다.

예를 들어 Mind라는 데이터를 검색한다고 하면 MINDmind 검색어로 사용하였을 경우 검색이 되지 않을 수도 있다. 이는 MySQL의 데이터가 대문자, 소문자 구분으로 되어 구조상 검색할 수 없을 경우다.

MySQL에서 데이터의 구조를 보면 binary 함수가 설정되어 있는지 보자! 만약 설정되어있다면 대문자, 소문자를 구별하겠다는 의미이다.
binary 함수를 사용하면 데이터에 대문자, 소문자를 구별하는 의미이므로 없어줘야 대문자, 소문자 구별 없이 검색이 가능하다.
만약 대문자, 소문자를 구별하여 검색을 하게 하고 싶다면 binary 함수를 사용한 두 가지 방법이 있다.

1. 데이터 구조에서 설정하여 binary 함수를 걸어준다.
(이미 생성된 테이블일 경우에는 ALERT로 BINARY를 수정해주면 된다.)

2. 검색 쿼리 작성 시 binary 함수 옵션을 사용하는 방법

SELECT  * 
  FROM  EMP
 WHERE  NAME
BINARY '%$search%'
728x90

'데이터베이스 > SQL' 카테고리의 다른 글

[MySQL API] mysql_affected_rows()  (0) 2011.03.03
[MySQL] from_unixtime()  (0) 2010.06.16
[MySQL] 테이블 구조 조회  (0) 2010.06.16
[MySQL] 테이블 생성  (0) 2009.08.04
테이블 컬럼 추가, 변경(수정), 삭제  (0) 2009.07.23
Comments