Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 SELECT 문으로 ASCII 변환이 불가능한 문자 제거하는 방법

MySQL에서 SELECT 문으로 ASCII 변환이 불가능한 문자 제거하기

데이터베이스 작업 중 유로 기호(€)나 섹션 기호(§) 같은 특수문자가 포함된 데이터를 다룰 때, ASCII로 변환할 수 없는 문자를 제거해야 하는 경우가 있습니다. MySQL에서는 CONVERT() 함수와 REPLACE() 함수를 조합하면 이 문제를 간단하게 해결할 수 있습니다.

1. 테이블 생성

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable
(
    Value varchar(100)
);
Query OK, 0 rows affected (0.57 sec)

2. 데이터 삽입

insert 명령을 사용하여 특수문자가 포함된 레코드를 삽입합니다.

mysql> insert into DemoTable values('€986');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('§97');
Query OK, 1 row affected (0.15 sec)

3. 저장된 데이터 확인

select 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

위 쿼리는 다음과 같은 결과를 출력합니다.

+--------+
| Value  |
+--------+
| €986   |
| §97    |
+--------+
2 rows in set (0.00 sec)

4. ASCII로 변환할 수 없는 문자 제거 쿼리

CONVERT(Value USING ascii)는 ASCII로 변환할 수 없는 문자를 물음표(?)로 대체합니다. 여기에 REPLACE() 함수를 적용해 물음표를 빈 문자열로 치환하면, 특수문자가 완전히 제거된 깨끗한 결과를 얻을 수 있습니다.

mysql> select replace(convert(Value using ascii),'?','') from DemoTable;

위 쿼리는 다음과 같은 결과를 출력합니다.

+--------------------------------------------+
| replace(convert(Value using ascii),'?','') |
+--------------------------------------------+
| 986                                        |
| 97                                         |
+--------------------------------------------+
2 rows in set (0.00 sec)

결과를 보면 '€986'은 '986'으로, '§97'은 '97'로 변환되어 ASCII로 변환할 수 없는 특수문자가 성공적으로 제거된 것을 확인할 수 있습니다. 이 방법은 숫자와 알파벳만 남기고 불필요한 기호를 정리해야 할 때 매우 유용합니다.