SQL
CHAR_LENGTH
c29130811
2021. 5. 24. 22:58
DB에 저장된 값(문자열)에 길이를 확인하여 테스트를 진행할 경우, 많이 쓰는 키워드
ex) story title은 0글자에서 50글자까지 저장이 가능하다.
근데, UI 상에서 width가 40자까지만 지원되기 때문에, 뒤에 글자들은 ellipsis(말줄임) 처리가 될 것이다.
그렇다면 40자 미만부터 아슬아슬한 경곗값인 40자와 이상을 다 확인해야겠지?
id | title |
1 | The Father Who Wanted to Marry His Daughter. |
2 | The Frog King, or Iron Heinrich. |
3 | The Story of a Boy Who Went Forth to Learn Fear. |
4 | The Little Old Man Made Young by Fire. |
5 | The King's Son Who Is Afraid of Nothing. |
SELECT *, CHAR_LENGTH(title) FROM stories;
쿼리 사용 시, 결과는 다음과 같다.
id | title | `char_length(title)` |
1 | The Father Who Wanted to Marry His Daughter. | 44 |
2 | The Frog King, or Iron Heinrich. | 32 |
3 | The Story of a Boy Who Went Forth to Learn Fear. | 48 |
4 | The Little Old Man Made Young by Fire. | 38 |
5 | The King's Son Who Is Afraid of Nothing. | 40 |
CHAR_LENGTH 조건을 걸때는 WHERE로 이동되어 실행하면 된다.
SELECT * FROM stories WHERE CHAR_LENGTH(title) >= 40;
LENGTH와 CHAR_LENGTH 의 차이는
LENGTH는 Byte 수를 가져오기 때문에, 한글의 경우 "안녕"은 6바이트로 출력되나, CHAR_LENGTH는 문자의 개수기 때문에, 2로 출력된다.
728x90