MySQL에서 대문자를 확인하는 방법?
문자열이 대문자로만 구성되어 있는지 확인하고 싶습니다.RLIKE/REGEXP는 MySQL에서 대소문자 구분이 되지 않는다는 것을 알고 있어서 사용해 보았습니다.:upper:
문자 클래스:
SELECT 'z' REGEXP '^[[:upper:]]+$';
이는 z가 소문자이긴 하지만 사실입니다.왜 그런 것일까요?
REGEXP는 이진 문자열과 함께 사용하는 경우를 제외하고 대소문자를 구분하지 않습니다.
그러니 이 점을 염두에 두고 다음과 같은 일을 해보세요.
SELECT * FROM `users` WHERE `email` REGEXP BINARY '[A-Z]';
위의 예를 사용하면 하나 이상의 대문자가 포함된 전자 메일 목록을 얻을 수 있습니다.
저는 이것이 작동하고 regexp를 사용하지 않습니다.기본적으로 필드와 mysql 자체로 대문자가 된 필드를 비교합니다.
-- will detect all names that are not in uppercase
SELECT
name, UPPER(name)
FROM table
WHERE
BINARY name <> BINARY UPPER(name)
;
대소문자 구분 대조로 변경합니다.
CHARACTER SET latin1 COLLATE latin1_general_cs
그럼 이 질문을 해보세요
SELECT 'z' REGEXP '^[A-Z]+$'
가장 많이 투표한 답변은 제게 맞지 않아요. 오류가 납니다.
Character set 'utf8mb4_unicode_ci' cannot be used in conjunction with 'binary' in call to regexp_like.
MD5를 사용하여 원래 값과 소문자 값을 비교했습니다.
SELECT * FROM user WHERE MD5(email) <> MD5(LOWER(email));
언급URL : https://stackoverflow.com/questions/16558967/how-to-check-for-uppercase-letters-in-mysql
'programing' 카테고리의 다른 글
엔티티 프레임워크 포함() 강력하게 입력됨 (0) | 2023.10.16 |
---|---|
git push 명령에서 사용자 이름 및 암호 (0) | 2023.10.16 |
nginx 업스트림을 사용하여 워드 프레스 상수 (0) | 2023.10.16 |
SQL에서 매핑 값을 선택하시겠습니까? (0) | 2023.10.16 |
열 이름 MySQL Workbench MariaDB (0) | 2023.10.16 |