홍동이의 성장일기
[Advent of SQL 2024🎄] SQLite 특수문자 포함하지 않도록 하는 구문 본문
SQLite에서 LIKE를 사용할 때, 언더스코어(_)는 기본적으로 단일 문자 와일드카드로 동작합니다.
따라서 NOT LIKE '%_%'는 "문자열의 일부가 단일 문자인 경우가 아니다"로 해석되며, 원하는 결과를 반환하지 않을 수 있습니다.
WHERE 컬럼명 NOT LIKE '%_%'
이를 해결하려면 언더스코어를 문자 그대로 처리하도록 ESCAPE 키워드를 사용하거나, 다른 함수(INSTR)를 사용해야 합니다.
WHERE 컬럼명 NOT LIKE '%\_%' ESCAPE '\'
- ESCAPE '\': 백슬래시(\)를 이스케이프 문자로 지정합니다.
- '%\_%': 언더스코어를 문자 그대로 처리합니다.
WHERE INSTR(컬럼명, '_') = 0
- INSTR(컬럼명, '_'): 컬럼명 문자열에서 언더스코어가 포함된 위치를 반환합니다.
- 값이 0이면 언더스코어가 없는 경우를 의미합니다.
WHERE REPLACE(컬럼명, '_', '') = 컬럼명
- REPLACE( 컬럼명 , '_', ''): 컬럼명에서 모든 언더스코어를 제거합니다.
- 제거 후의 문자열이 원래 문자열과 같으면 언더스코어가 없는 경우입니다.
다섯문제 풀고 침대로 ~🌛
728x90
'Tool > SQL 코딩테스트 풀이' 카테고리의 다른 글
[Advent of SQL 2024🎄] 정수 나눗셈, SELECT절 CASE문 (0) | 2024.12.23 |
---|---|
[LeetCode] 601. Human Traffic of Stadium (연속된 id 가져오기) (0) | 2024.04.04 |
[LeetCode] 1934. Confirmation Rate (특정 조건에 부합하는 확률 구하기) (0) | 2024.03.18 |
[LeetCode] 1907. Count Salary Categories (범위에 값이 없으면 0을 반환) (1) | 2024.01.07 |
[LeetCode] 1341. Movie Rating (Union vs. Union All) (2) | 2024.01.03 |
Comments