2012-04-19 3 views
0

다음 :IN 연산자를 사용하여 MySQL에서 민감한 방식으로 데이터를 쿼리 할 수 ​​있습니까?

select * from people where first_name in ('John', 'Jim'); 

  • 같은 FIRST_NAME 존
  • JIM

이있는 모든 사람을 살리는 것 등의 모든 종류의 조합 대/소문자를 구분하지 않는 모드로 쿼리가 실행되기 때문입니다.

대/소문자를 구분하여 모드를 실행하려면 어떻게해야합니까?

select * from people where first_name in binary ('John', 'Jim'); 

을했지만 작동하지 않습니다

나는 시도했다.

제발, 칼럼의 대조를 바꾸라고 말하지 마십시오. 나는 사용자의 선택에 따라 (민감하게 또는 대소 문자를 구분하지 않고 대/소문자를 구분하여)이를 동적으로 갖고 싶습니다.

뭐라 구요?

답변

1

binary과 아이디어는 좋은 시도,하지만 당신은 열 이름 대신 검색어에 적용 할 수 있습니다. 이렇게하면 색인이 사용되지 않습니다. 그러나 다음 조합을 사용할 수 있습니다.

WHERE first_name in ('John','Jim') AND BINARY first_name in ('John','Jim') 
1

select * from people 
where first_name COLLATE latin1_general_cs in ('John', 'Jim');