Tôi đã tách câu trả lời này thành hai (2) phương pháp. Phương pháp đầu tiên sẽ tách trường tên đầy đủ của bạn thành họ, tên đệm và họ. Tên đệm sẽ hiển thị là NULL nếu không có tên đệm.
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) AS first_name,
If( length(fullname) - length(replace(fullname, ' ', ''))>1,
SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 2), ' ', -1) ,NULL)
as middle_name,
SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 3), ' ', -1) AS last_name
FROM registeredusers
Phương pháp thứ hai này coi tên đệm là một phần của họ. Chúng tôi sẽ chỉ chọn cột họ và tên từ trường họ và tên của bạn.
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) AS first_name,
TRIM( SUBSTR(fullname, LOCATE(' ', fullname)) ) AS last_name
FROM registeredusers
Có rất nhiều điều thú vị mà bạn có thể làm với substr, định vị, substring_index, v.v. Kiểm tra hướng dẫn sử dụng để biết một số nhầm lẫn thực sự. http://dev.mysql.com/doc/refman /5.0/en/string-functions.html