Да, насколько знаю, в MySQL покачто поддержки функциональных индексов нет, но, в качестве обходного пути, можно например создать новый столбец с индексом по нему, и обновлять его триггером.
В этом случае такой запрос будет гораздо быстрее выполняться, чем запрос всех предметов с последущей...