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

Lấy giá trị số lớn nhất từ chuỗi tiền tố + số trong MySQL

Khi cột chứa chuỗi dạng 'STU201', 'STU290' (tiền tố chữ + số), dùng SUBSTRING tách phần số rồi CAST ... AS UNSIGNED để so sánh số học.

Ví dụ

Tạo bảng mã sách:

mysql> create table DemoTable ( 
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    StudentBookCode varchar(200) 
); 
Query OK, 0 rows affected (0.56 sec)

Dữ liệu: STU201, STU202, STU203, STU290, STU234

Tìm MAX phần số (bỏ qua 3 ký tự đầu 'STU')

mysql> select MAX(CAST(SUBSTRING(StudentBookCode FROM 4) AS UNSIGNED)) from DemoTable;
+----------------------------------------------------------+
| MAX(CAST(SUBSTRING(StudentBookCode FROM 4) AS UNSIGNED)) |
+----------------------------------------------------------+
| 290                                                      |
+----------------------------------------------------------+

Giải thích:

  • SUBSTRING(StudentBookCode FROM 4) lấy từ ký tự thứ 4 trở đi (bỏ 'STU')
  • CAST(... AS UNSIGNED) chuyển chuỗi số thành số nguyên không dấu
  • MAX() tìm giá trị lớn nhất

Lưu ý: Cách này giả định tiền tố độ dài cố định. Nếu tiền tố độ dài biến đổi, dùng REGEXP hoặc SUBSTRING_INDEX tách theo delimiter.