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

MySQL에서 숫자를 사용해 varchar 열을 검색하는 방법

varchar 타입의 열에 저장된 값이 숫자와 특수문자가 섞여 있을 때, 숫자만 가지고도 해당 값을 검색할 수 있습니다. 이때 MySQL의 INSERT() 함수를 활용하면 되는데, 이 함수는 다음과 같은 매개변수를 가집니다.

매개변수설명
str수정 대상이 되는 문자열
positionstr2를 삽입할 위치
number대체할 문자 수
str2str에 삽입할 문자열

예제 테이블 생성

먼저 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
-> (
-> Code varchar(100)
-> );
Query OK, 0 rows affected (0.82 sec)

insert 명령을 사용해 테이블에 몇 개의 레코드를 삽입합니다.

mysql> insert into DemoTable values('958575/98') ;
Query OK, 1 row affected (0.16 sec)

mysql> insert into DemoTable values('765432/99');
Query OK, 1 row affected (0.19 sec)

mysql> insert into DemoTable values('983456/91');
Query OK, 1 row affected (0.15 sec)

select 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

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

+-----------+
| Code |
+-----------+
| 958575/98 |
| 765432/99 |
| 983456/91 |
+-----------+
3 rows in set (0.00 sec)

숫자로 varchar 열 검색하기

다음은 숫자만 사용하여 varchar 열을 검색하는 쿼리입니다.

mysql> select *from DemoTable where Code =INSERT(76543299,7,0,'/');

여기서 INSERT(76543299, 7, 0, '/')는 숫자 76543299의 7번째 위치에 슬래시(/)를 삽입하고, 기존 문자는 0개만큼만 대체하라는 의미입니다. 그 결과 '765432/99'라는 문자열이 만들어져 WHERE 조건과 일치하게 됩니다.

출력 결과

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

+-----------+
| Code |
+-----------+
| 765432/99 |
+-----------+
1 row in set (0.00 sec)

이처럼 INSERT() 함수를 활용하면 원본 데이터에 포함된 구분 기호나 특수문자를 동적으로 생성하여, 숫자 정보만으로도 varchar 열의 값을 정확하게 검색할 수 있습니다.