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

MySQL에서 하이픈으로 구분된 숫자 문자열의 최소값과 최대값 찾는 방법

MySQL에서 하이픈으로 구분된 숫자의 최소값(MIN)과 최대값(MAX) 구하기

MySQL에서 하이픈(-)으로 구분된 숫자가 포함된 문자열을 다룰 때, 최소값은 MIN() 함수와 SUBSTRING_INDEX() 함수를 조합하여 구하고, 최대값은 MAX() 함수를 사용하여 구할 수 있습니다.

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Value varchar(100)
-> );
Query OK, 0 rows affected (0.76 sec)

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

mysql> insert into DemoTable(Value) values('10-20');
Query OK, 1 row affected (0.18 sec)

mysql> insert into DemoTable(Value) values('200-100');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable(Value) values('780-235');
Query OK, 1 row affected (0.29 sec)

SELECT 문을 사용하여 테이블의 모든 레코드를 확인합니다.

mysql> select *from DemoTable;

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

+----+---------+
| Id | Value |
+----+---------+
| 1 | 10-20 |
| 2 | 200-100 |
| 3 | 780-235 |
+----+---------+
3 rows in set (0.00 sec)

하이픈으로 구분된 숫자에서 MIN()과 MAX() 값을 조회하는 쿼리

다음은 하이픈으로 구분된 문자열에서 앞부분 숫자의 최소값과 뒷부분 숫자의 최대값을 찾는 쿼리입니다. SUBSTRING_INDEX(Value, '-', 1)은 첫 번째 하이픈 앞의 값을, SUBSTRING_INDEX(Value, '-', -1)은 마지막 하이픈 뒤의 값을 추출합니다.

mysql> select min(SUBSTRING_INDEX(Value, '-', 1)),
-> max(SUBSTRING_INDEX(Value, '-', -1))
-> from DemoTable;

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

+-------------------------------------+--------------------------------------+
| min(SUBSTRING_INDEX(Value, '-', 1)) | max(SUBSTRING_INDEX(Value, '-', -1)) |
+-------------------------------------+--------------------------------------+
| 10 | 235 |
+-------------------------------------+--------------------------------------+
1 row in set (0.04 sec)

결과를 보면 첫 번째 위치의 숫자들(10, 200, 780) 중 최소값인 10과 두 번째 위치의 숫자들(20, 100, 235) 중 최대값인 235가 정상적으로 반환된 것을 확인할 수 있습니다.