2016-07-01 2 views
0

그 querys가 대소 문자를 구분하는지 알고 싶습니다. 이 querys는 같은가요?MariaDB/MySQL 쿼리는 대소 문자를 구분합니까?

SELECT * FROM Users WHERE login="john"; 
SELECT * FROM Users WHERE login="John"; 
SELECT * FROM Users WHERE login="JOHN"; 
SELECT * FROM Users WHERE login="jOHn"; 

나는 내 콘솔에서 그것을 시도하고 모든 일을,하지만 난 최대 절전 모드 또는 무엇을 사용하는 경우 그의 확인되고 싶어요.

감사합니다.

+0

우리가 알아낼 수있는 방법이 있다면. – Strawberry

답변

1
the MySQL docs에 따르면

,

기본 문자 집합 및 데이터 정렬 라틴하고 latin1_swedish_ci, 그래서 이진이 아닌 문자열 비교는 질문의 두 번째 부분에 관해서는 기본

하여 대소 문자를 구별하지 있습니다 - this SO answer은 검색자가 대소 문자를 구분하도록 구성하는 방법을 보여줍니다.

+0

다음과 같은 좋은 기능을 사용할 수 있습니다 : SELECT * FROM users where login = LOWER ("john")? – Ommadawn

+0

최신 버전의 MySQL에서는 기본값이'utf8'과'utf8_general_ci'로 변경되었습니다. 두 경우 모두'_ci '는 "대소 문자를 구분하지 않음"을 의미합니다. 당신의 쿼리에서 이것은'login' 컬럼에 적용됩니다. –

+0

데이터 정렬이 올바르게 설정된 경우'LOWER()'를 사용하지 마십시오. –

0

MariaDB docs에서 OS에 따라 다릅니다. Windows의 경우 대소 문자를 구분하지 않습니다. Linux의 경우 데이터베이스, 테이블, 테이블 별칭 및 트리거 이름은 시스템 대소 문자 구분에 의해 영향을 받지만 인덱스, 열, 열 별칭, 저장된 루틴 및 이벤트 이름은 대/소문자를 구분하지 않습니다.

관련 문제