in reply to MySQL last name field

Your solution is basically sound, but there are some things worth noting:
  1. You really don't want to have a Name field if you have a last name field -- what if someone changes their name? It's safer to eventually drop the name column entirely, when you've split it to first and last names.
  2. Sometimes people's names arn't quite as easily parsed as that. What if someone has a first name of "Mary Anne" or a last name of "Simon Broquard"? There's not really a good way to deal with those situations except flag them and fix them by hand with domain-specific knowledge (e.g. ask them)
  3. You might be able to do this more efficiently by writing a stored procedure (not sure if MySQL supports them though), so that all that data won't need to flow woth ways from/to the database. OTOH, ~5000 data entries is perhaps not enough data for this to be a major concern
So, in sum, don't split name to name and lastname, split it to firstname and lastname, and remove name. Be careful that your splits don't encounter oddities. I hope this helps.