Kết hợp SUBSTRING() tách phần số, CAST() chuyển sang số, rồi dùng MAX().
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE DemoTable1337 (Value VARCHAR(50));
Chèn dữ liệu:
mysql> INSERT INTO DemoTable1337 VALUES('Value400'), ('Value345'), ('Value567'), ('Value489');
Xem dữ liệu:
mysql> SELECT * FROM DemoTable1337;
+----------+ | Value | +----------+ | Value400 | | Value345 | | Value567 | | Value489 | +----------+
Tách số (bỏ 5 ký tự đầu "Value"), chuyển DECIMAL, lấy MAX:
mysql> SELECT MAX(CAST(SUBSTRING(Value, 6) AS DECIMAL(10,2))) AS MaximumValue FROM DemoTable1337;
Kết quả:
+--------------+ | MaximumValue | +--------------+ | 567.00 | +--------------+
Giải thích:
SUBSTRING(Value, 6): lấy từ ký tự thứ 6 đến hết (bỏ "Value").CAST(... AS DECIMAL(10,2)): chuyển chuỗi sang số để so sánh đúng (không so sánh chuỗi '9' > '100').MAX(): tìm giá trị lớn nhất.
Cải tiến: Nếu tiền tố không cố định độ dài, dùng SUBSTRING_INDEX(Value, 'Value', -1) hoặc REPLACE(Value, 'Value', '').