Thật không may, MySQL không có chức năng chia chuỗi. Tuy nhiên, bạn có thể tạo chức năng do người dùng xác định cho điều này, chẳng hạn như một trong những mô tả trong bài viết sau:
- Hàm Chia Chuỗi MySQL của Federico Cargnelutti
Với chức năng đó:
DELIMITER $$
CREATE FUNCTION SPLIT_STR(
x VARCHAR(255),
delim VARCHAR(12),
pos INT
)
RETURNS VARCHAR(255) DETERMINISTIC
BEGIN
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '');
END$$
DELIMITER ;
bạn sẽ có thể tạo truy vấn của mình như sau:
SELECT SPLIT_STR(membername, ' ', 1) as memberfirst,
SPLIT_STR(membername, ' ', 2) as memberlast
FROM users;
Nếu bạn không muốn sử dụng hàm do người dùng xác định và bạn không ngại truy vấn dài dòng hơn một chút, bạn cũng có thể làm như sau:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(membername, ' ', 1), ' ', -1) as memberfirst,
SUBSTRING_INDEX(SUBSTRING_INDEX(membername, ' ', 2), ' ', -1) as memberlast
FROM users;