Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tìm MIN/MAX từ chuỗi số phân cách bằng dấu gạch ngang trong MySQL

Kết hợp SUBSTRING_INDEX() để tách phần trước/sau dấu -, sau đó dùng MIN(), MAX() trên kết quả (MySQL tự chuyển chuỗi sang số khi so sánh).

Ví dụ minh họa

Tạo bảng:

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Value VARCHAR(100)
);

Chèn dữ liệu:

mysql> INSERT INTO DemoTable(Value) VALUES('10-20');
mysql> INSERT INTO DemoTable(Value) VALUES('200-100');
mysql> INSERT INTO DemoTable(Value) VALUES('780-235');

Xem dữ liệu:

mysql> SELECT * FROM DemoTable;

Kết quả

+----+---------+
| Id | Value   |
+----+---------+
| 1  | 10-20   |
| 2  | 200-100 |
| 3  | 780-235 |
+----+---------+

Tìm MIN của phần trước dấu - và MAX của phần sau dấu -:

mysql> SELECT
    -> MIN(SUBSTRING_INDEX(Value, '-', 1)),
    -> MAX(SUBSTRING_INDEX(Value, '-', -1))
    -> FROM DemoTable;

Kết quả

+-------------------------------------+--------------------------------------+
| MIN(SUBSTRING_INDEX(Value, '-', 1)) | MAX(SUBSTRING_INDEX(Value, '-', -1)) |
+-------------------------------------+--------------------------------------+
| 10                                  | 235                                  |
+-------------------------------------+--------------------------------------+

Giải thích: SUBSTRING_INDEX(Value, '-', 1) lấy phần trước dấu - đầu tiên; SUBSTRING_INDEX(Value, '-', -1) lấy phần sau dấu - cuối cùng. MySQL so sánh chuỗi theo giá trị số khi dùng MIN/MAX trên chuỗi chỉ chứa chữ số.