Convert it to seconds. 8:32 is (8 * 60) + 32 = 512 seconds. When you read it out you can sort it properly then do your conversion back to minutes and seconds on the server side. I was doing the same thing, storing my durations as a string, then I realized that storing it as an unsigned short or int worked better (I'd recommend an unigned short, you'll save 2 bytes per row and the maximum value of an unsigned short is 65,535, which would be 18 hours, 12 minutes, and 15 seconds).
The conversion is simple, here's how I'd do it in PHP:
- $dur = "8:32";
-
$arr = explode(":", $dur);
-
$seconds = ($arr[0] * 60) + $arr[1];
You could just run a loop through all of the rows in that table and run an UPDATE query within the loop.