How can you select the first 10% records from a table in MySQL?

First 10% rows is actually meaningless unless specify on what basis
You specify it based of ORDER BY involving one or more columns. Otherwise when you say just TOP 10 % it means just any random 10% rows

In any case the query can be written like this