действия над alias'ом в order by

Gas

может по одной?
действия над alias'ом в order by

есть запрос типа:
SELECT *, if(author like "%толкиен%",1.01,0)+if(author like "%перумов%",1.02,0) as relevance
FROM books WHERE author like "%толкиен%" or author like "%перумов%"
ORDER BY relevance DESC,name; - работает все зашибись.

Но мне надо ... ORDER BY FLOOR(relevance) ...
на что мне MySql говорит: Unknown column 'relevance' in 'order clause',
сам знаю что нет у меня такого столбца.

Внимание вопрос: как, блин, с этим бороться, а то в ман полчаса пялился, не нашел.
Может это надо через временную таблицу?
 

Gas

может по одной?
А вариант
SELECT *, if(author like "%толкиен%",1,0)+if(author like "%перумов%",2,0) as words
FROM books WHERE author like "%толкиен%" or author like "%перумов%"
ORDER BY floor(if(author like "%толкиен%",1,0)+if(author like "%перумов%",1,0)) DESC,name;
намного медленнее предыдущего?
 
Сверху