Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL 대소문자를 구분하지 않는 DISTINCT?

<시간/>

대소문자를 구분하지 않으려면 UPPER() 또는 LOWER()를 사용해야 합니다.

사례 1: UPPER() 사용.

구문은 다음과 같습니다.

SELECT DISTINCT UPPER(yourColumnName) FROM yourTableName;

사례 2: LOWER() 사용.

구문은 다음과 같습니다.

SELECT DISTINCT LOWER(yourColumnName) FROM yourTableName;

위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> 테이블 생성 CaseInsensitiveDistinctDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> UserEmailId varchar(30), -> UserPassword varchar(10), -> PRIMARY KEY(Id) -> ), 쿼리 확인, 0 영향을 받는 행(0.64초)

이제 insert 명령을 사용하여 테이블에 일부 레코드를 삽입할 수 있습니다. 쿼리는 다음과 같습니다.

mysql> Insert into CaseInsensitiveDistinctDemo(UserEmailId,UserPassword) values('John@gmail.com','john123');Query OK, 1행 영향(0.15초)mysql> CaseInsensitiveDistinctDemo(UserEmailId,UserPassword) 값( 'john@gmail.com','654321');쿼리 확인, 1행 영향(0.43초)mysql> CaseInsensitiveDistinctDemo(UserEmailId,UserPassword) 값('Mike@gmail.com','999999')에 삽입, 쿼리 확인 , 영향을 받은 행 1개(0.14초)mysql> CaseInsensitiveDistinctDemo(UserEmailId,UserPassword) values('mike@gmail.com','334556')에 삽입 ,UserPassword) values('Carol@gmail.com','1010101');쿼리 OK, 1행 영향(0.13초)mysql> CaseInsensitiveDistinctDemo(UserEmailId,UserPassword) values('Larry@gmail.com','12345678 ');쿼리 OK, 영향을 받는 행 1개(0.20초)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다.

mysql> 선택 *CaseInsensitiveDistinctDemo;

다음은 출력입니다.

+----+-----------------+--------------+| 아이디 | 사용자 이메일 ID | 사용자 비밀번호 |+----+-----------------+--------------+| 1 | John@gmail.com | 존123 || 2 | john@gmail.com | 654321 || 3 | Mike@gmail.com | 999999 || 4 | mike@gmail.com | 334556 || 5 | 캐롤@gmail.com | 1010101 || 6 | 래리@gmail.com | 12345678 |+-+-----------------+--------------+6행 세트(0.00초) 

다음은 대소문자를 구분하지 않는 고유 항목을 선택하는 쿼리입니다.

사례 1: UPPER() 사용. 쿼리는 다음과 같습니다.

mysql> CaseInsensitiveDistinctDemo에서 고유한 상위(UserEmailId) 선택;

다음은 출력입니다.

+--------------------+| 상위(UserEmailId) |+--------------------+| JOHN@GMAIL.COM || MIKE@GMAIL.COM || CAROL@GMAIL.COM || LARRY@GMAIL.COM |+--------------------+4행 세트(0.06초)

사례 2: LOWER() 사용. 쿼리는 다음과 같습니다.

mysql> CaseInsensitiveDistinctDemo에서 고유한 하위(UserEmailId) 선택;

다음은 출력입니다.

+--------------------+| 더 낮은(UserEmailId) |+--------------------+| john@gmail.com || mike@gmail.com || carol@gmail.com || larry@gmail.com |+--------------------+4행 세트(0.00초)