When you execute a SELECT statement it returns rows (the result set). If you want the result set ordered you add an ORDER BY statement to the SELECT.
Some dbms' like MS SQL Server allow you to create a "clustered" index which order the rows the same as the index to make retrieval on that index fastest, but I don't think mysql has any concept of "internal sort".
Trying to 'resort a key based on a specific value in that row' makes no sense to me.