@Marc B đã đóng. Trong MySQL, câu lệnh sau trả về 12:
SELECT CHAR_LENGTH("Have_a_good_day") - LOCATE('_', REVERSE("Have_a_good_day"))+1;
Dự đoán việc sử dụng giá trị có thể xảy ra, câu lệnh sau sẽ trích xuất phần bên trái của chuỗi trước dấu gạch dưới cuối cùng (tức là, _):
SELECT LEFT("first_middle_last", CHAR_LENGTH("first_middle_last") - LOCATE('_', REVERSE("first_middle_last")));
Kết quả là "first_middle". Nếu bạn muốn bao gồm dấu phân cách, hãy sử dụng:
SELECT LEFT("first_middle_last", CHAR_LENGTH("first_middle_last") - LOCATE('_', REVERSE("first_middle_last"))+1);
Sẽ thật tuyệt nếu họ nâng cao LOCATE để có tùy chọn bắt đầu tìm kiếm từ bên phải.
Nếu bạn muốn phần bên phải của chuỗi sau dấu cách cuối cùng, giải pháp tốt hơn là:
SELECT SUBSTRING_INDEX("first_middle_last", '_', -1);
Điều này trả về "cuối cùng".