Чтобы вставить эти значения:
INSERT INTO users (firstname, lastname)
SELECT SUBSTRING_INDEX( SUBSTRING_INDEX( fullname, ' ', 1 ) , ' ', -1 ) AS firstname,
SUBSTRING_INDEX( SUBSTRING_INDEX( fullname, ' ', 2 ) , ' ', -1 ) AS lastname
FROM users;
Для обновления существующих значений для той же строки:
update users
set firstname = SUBSTRING_INDEX( SUBSTRING_INDEX(fullname, ' ', 1 ) , ' ', -1 ),
lastname = SUBSTRING_INDEX( SUBSTRING_INDEX(fullname, ' ', 2 ) , ' ', -1 )
Чтобы обновить существующие значения, но другую строку:
update users users_a, users users_b
set users_b.firstname = SUBSTRING_INDEX( SUBSTRING_INDEX( users_a.fullname, ' ', 1 ) , ' ', -1 ),
users_b.lastname = SUBSTRING_INDEX( SUBSTRING_INDEX( users_a.fullname, ' ', 2 ) , ' ', -1 )
where users_a.??? = users_b.??? /* join condition as appropriate */