값이 소문자를 포함하는 행을 찾는 방법
ColumnX가 소문자를 포함하는 모든 행을 제공하는 SQL 쿼리를 찾고 있습니다(예: "1234aaaaa5789").대문자도 마찬가지입니다.
SELECT * FROM my_table
WHERE UPPER(some_field) != some_field
이것은 äø å å와 같은 재미있는 캐릭터와 함께 작동해야 합니다.테이블에는 언어 고유의 utf-8 조회를 사용해야 할 수 있습니다.
SELECT * FROM my_table WHERE my_column = 'my string'
COLLATE Latin1_General_CS_AS
이렇게 하면 대소문자가 구분됩니다.
편집
아래 조합에 문제가 있는 사람은 여기 kouton의 코멘트, 여기 tormuto의 코멘트에 기재되어 있습니다.
COLLATE Latin1_General_CS_AS
는 먼저 SQL 서버, 각 데이터베이스 및 문제의 컬럼에 대한 기본 조회를 확인하고 쿼리 식과의 기본 조회를 전달합니다.대조 목록은 여기에서 찾을 수 있습니다.
SELECT * FROM Yourtable
WHERE UPPER([column_NAME]) COLLATE Latin1_General_CS_AS !=[Column_NAME]
utf8 인코딩된 테이블과 utf8_unicode_ci 컬럼에 대해 이 작업을 수행한 방법은 다음과 같습니다.
SELECT *
FROM table
WHERE UPPER(column) != BINARY(column)
모든 행을 소문자로 검색합니다.
SELECT *
FROM Test
WHERE col1
LIKE '%[abcdefghijklmnopqrstuvwxyz]%'
collate Latin1_General_CS_AS
고마워 마네쉬 조셉
MS SQL Server에서는 COLATE 절을 사용합니다.
SELECT Column1
FROM Table1
WHERE Column1 COLLATE Latin1_General_CS_AS = 'casesearch'
추가 중COLLATE Latin1_General_CS_AS
검색 대소문자를 구분합니다.
SQL Server 설치 기본 조합SQL_Latin1_General_CP1_CI_AS
대소문자를 구분하지 않습니다.
테이블에 대한 임의의 컬럼의 조회를 변경하려면 다음 쿼리를 영구적으로 실행합니다.
ALTER TABLE Table1
ALTER COLUMN Column1 VARCHAR(20)
COLLATE Latin1_General_CS_AS
테이블에 대한 열 정렬을 확인하려면 저장 프로시저를 수행합니다.
EXEC sp_help DatabaseName
출처 : SQL SERVER – Collate – 대소문자를 구분하는 SQL 쿼리 검색
하급 사건을 알아내기 위해 이런 짓을 했어요
SELECT *
FROM YourTable
where BINARY_CHECKSUM(lower(ColumnName)) = BINARY_CHECKSUM(ColumnName)
mysql> SELECT '1234aaaa578' REGEXP '^[a-z]';
대소문자를 구분하여 결과를 가져오려면 ColumnX에 BINARY를 추가해야 합니다.
SELECT * FROM MyTable WHERE BINARY(ColumnX) REGEXP '^[a-z]';
MySQL에 대한 전문가가 아닙니다. 다음 웹 사이트를 참조하십시오.REGEXP
.
SELECT * FROM MyTable WHERE ColumnX REGEXP '^[a-z]';
Posgresql에서는~
예를 들어 다음과 같은 모든 행을 검색할 수 있습니다.col_a
소문자로 된 글자가 있으면
select * from your_table where col_a '[a-z]';
필요에 따라 정규식을 수정할 수 있습니다.
안부 전해요,
-- SQL의 경우
SELECT *
FROM tablename
WHERE tablecolumnname LIKE '%[a-z]%';
논리적으로 볼 때 노히트의 해결책은 효과가 있었어야 했지만 효과가 없었다.SQL Management Studio가 이것을 최적화하려고 할 때 실수를 한 것 같습니다.
그러나 비교하기 전에 문자열을 수정함으로써 올바른 결과를 얻을 수 있었습니다.이 방법은 효과가 있었습니다.
SELECT [ExternalId]
FROM [EquipmentSerialsMaster] where LOWER('0'+[ExternalId]) COLLATE Latin1_General_CS_AS != '0'+[ExternalId]
언급URL : https://stackoverflow.com/questions/4123418/how-to-find-rows-that-have-a-value-that-contains-a-lowercase-letter
'source' 카테고리의 다른 글
MariaDB 영구 변수 설정 (0) | 2022.11.16 |
---|---|
Python에서 변수가 사전인지 확인하는 방법은 무엇입니까? (0) | 2022.11.16 |
MySQL Alter 테이블에서 오류가 발생했습니다.잘못된 NULL 값 사용 (0) | 2022.11.16 |
Java를 사용하여 큰 텍스트 파일을 한 줄씩 읽는 방법은 무엇입니까? (0) | 2022.11.16 |
PHP의 중첩 또는 내부 클래스 (0) | 2022.11.16 |