CASE 문과 함께 LENGTH()를 사용하여 줄임표가 있는 텍스트를 자를 수 있습니다. 길이가 7보다 크면 텍스트를 자르고 숫자를 추가하십시오. 그렇지 않으면 숫자를 있는 그대로 인쇄하십시오.
위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.
mysql> create table TruncateText -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Number longtext, -> PRIMARY KEY(Id) -> );쿼리 OK, 영향을 받는 행 0개(0.66초)
삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다.
mysql> insert into TruncateText(Number) values('64575868667687');Query OK, 1행 영향(0.11초)mysql> insert into TruncateText(Number) values('7654332');Query OK, 1행 영향( 0.17초)mysql> TruncateText(숫자) 값에 삽입('25434656'); 쿼리 OK, 1행 영향(0.19초)mysql> TruncateText(숫자) 값에 삽입('6457586');쿼리 OK, 1행 영향( 0.17초)mysql> TruncateText(숫자) 값에 삽입('958567686868675757574') 0.21초)mysql> TruncateText(숫자) 값에 삽입('58969678685858585858585858585'); 쿼리 OK, 1행 영향(0.14초)
select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다.
mysql> select *from TruncateText;
다음은 출력입니다.
+----+-------------------------------+| 아이디 | 번호 |+----+-------------------------------+| 1 | 64575868667687 || 2 | 7654332 || 3 | 25434656 || 4 | 6457586 || 5 | 958567686868675757574 || 6 | 374785868968787 || 7 | 58969678685858585858585858585 |+----+------------------------------------------------------------+7행 세트(0.00초)사전>위의 샘플 출력에는 길이가 7보다 큰 숫자가 있습니다. 길이가 7보다 크면 7번째 자리 뒤에 숫자를 추가해야 합니다. 길이가 7이거나 7이면 숫자를 추가할 필요가 없습니다.
쿼리는 다음과 같습니다.
mysql> SELECT *, CASE WHEN LENGTH(숫자)> 7 -> THEN CONCAT(SUBSTRING(숫자, 1, 7), '99999999') -> ELSE 숫자 END AS AddNumber -> FROM TruncateText;다음은 출력입니다.
+----+----------------------------------+--------- ------+| 아이디 | 번호 | 추가 번호 |+----+----------------------------------+---------- -------+| 1 | 64575868667687 | 645758699999999 || 2 | 7654332 | 7654332 || 3 | 25434656 | 254346599999999 || 4 | 6457586 | 6457586 || 5 | 958567686868675757574 | 958567699999999 || 6 | 374785868968787 | 374785899999999 || 7 | 58969678685858585858585858585 | 589696799999999 |+----+------------------------------------------------------------+---------- -------+7 행 세트(0.00초)위의 샘플 출력을 보십시오. 숫자가 7보다 크면 숫자의 모든 값을 잘라내고 7번째 자리 뒤에 숫자 '99999999'를 추가했습니다.