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

MySQL에서 숫자 형태의 두 문자열을 비교하는 방법

MySQL에서 숫자 문자열 비교하기

MySQL에서 숫자로 이루어진 두 문자열을 비교하려면 CAST() 함수를 사용하면 됩니다. CAST() 함수는 문자열 컬럼을 부호 있는 정수(signed) 타입으로 변환해 주기 때문에, varchar 타입으로 저장된 숫자 값도 일반 정수와 동일한 방식으로 비교할 수 있습니다.

기본 문법

숫자 문자열을 비교하는 기본적인 문법은 다음과 같습니다.

select *from yourTableName
where cast(yourColumnName as signed)=yourIntegerValue;

예제 테이블 생성

위 구문을 실제로 이해하기 위해 먼저 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table compareTwoStringDemo
-> (
-> UserId varchar(100)
-> );
Query OK, 0 rows affected (0.78 sec)

데이터 삽입

insert 명령을 사용하여 테이블에 샘플 레코드를 삽입합니다.

mysql> insert into compareTwoStringDemo values('1083745');
Query OK, 1 row affected (0.12 sec)
mysql> insert into compareTwoStringDemo values('9867585');
Query OK, 1 row affected (0.11 sec)
mysql> insert into compareTwoStringDemo values('3547483');
Query OK, 1 row affected (0.15 sec)
mysql> insert into compareTwoStringDemo values('9845646');
Query OK, 1 row affected (0.15 sec)
mysql> insert into compareTwoStringDemo values('9876532');
Query OK, 1 row affected (0.10 sec)

저장된 전체 데이터 조회

select 문을 사용하여 테이블에 저장된 모든 레코드를 확인합니다.

mysql> select *from compareTwoStringDemo;

위 쿼리의 실행 결과는 다음과 같습니다.

+---------+
| UserId |
+---------+
| 1083745 |
| 9867585 |
| 3547483 |
| 9845646 |
| 9876532 |
+---------+
5 rows in set (0.00 sec)

CAST() 함수로 숫자 문자열 비교하기

이제 CAST() 함수를 활용하여 숫자 형태의 문자열을 비교하는 쿼리를 살펴보겠습니다. 아래 예제에서는 UserId 컬럼을 signed 정수로 변환한 후 특정 값(3547483)과 비교합니다.

mysql> select *from compareTwoStringDemo
-> where cast(UserId as signed)=3547483;

위 쿼리의 실행 결과는 다음과 같습니다.

+---------+
| UserId |
+---------+
| 3547483 |
+---------+
1 row in set (0.00 sec)

결과를 보면 문자열로 저장된 값 중에서 조건과 일치하는 '3547483'만 정확하게 반환된 것을 확인할 수 있습니다. 이처럼 CAST() 함수를 사용하면 varchar 타입으로 저장된 숫자 문자열도 정수로 변환하여 안정적이고 정확하게 비교할 수 있습니다.