В идеале у вас должен быть кешированный словарь классов с их идентификаторами и будет делаться банальнейший SELECT с WHERE по class_id. Если нету, то делается JOIN вида
SELECT id, player_id, class_id ,character_name ,character_level FROM Characters as c
INNER JOIN classes as cl ON cl.id = c.class_id
WHERE condition
Для третьего пункта в идеале нужна темповая таблица, хранящая необходимые классы и делается JOIN типа
SELECT id, player_id, class_id ,character_name ,character_level FROM Characters as c
INNER JOIN classes as cl ON cl.id = c.class_id
INNER JOIN #temp as t ON cl.class_name = t.value
WHERE condition