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

Tìm giá trị lớn nhất từ cột chuỗi dạng 'Value440', 'Value345' trong SQL

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', '').