First of all you really MUST index this column for best results.
Second of all, it might be good to have a second column with values like
Kill a Mockingbird, To (although that should stay the same :-)
Basket, The
It doesn't look like mysql has a function like str_replace. I suggest you get everything into an array, clear out the result, and do some work on teh array in php or whatever (and very quick at that when you use the functions right).
On the other hand you may have 1000s of titles and so it really needs to be done in teh query to get "LIMIT n, batch" without getting 1000s of unneeded rows in a local array.
The query in the mysql would be rather complex, here's the mysql manual link:
http://dev.mysql.com/doc/mysql/en/Function_Index.html
Look at replace() and also substring() and IF(condition, action1, action2), something like
SELECT
IF( LOCATE('The ', Title)=1, CONCAT(SUBSTRING(), ', The'),
IF( LOCATE('An ' , Title)=1, CONCAT(SUBSTRING(),', An'),
IF( LOCATE('A ' , Title)=1, CONCAT(SUBSTRING(),', A'),
IF( LOCATE('Of ' , Title)=1, CONCAT(SUBSTRING(),', Of'),
Title)))) AS IndexedTitle
FROM
movielist
ORDER BY IndexedTitle ASC
[LIMIT 100, 20]
I'll let you figure out how to use substring() :-)
Sam