There are many ways to do this.
One of which is to query the character table now that it doesn't have the blob stuck in it, it actually makes sense to query it live from an external source versus the time it would take the index when the blob was in existence.
Code:
SELECT id, name, FROM_UNIXTIME(last_login) FROM character_data WHERE (last_login > UNIX_TIMESTAMP() - 600)
This essentially gets players that have been active within the last 10 minutes. This won't reflect the same as the server list per se (all of the time) but it is still just as accurate