Вы переопределяете псевдоним score
на постоянную 3
.
Перепишите запрос на:
SELECT
id
, MATCH (title,edition) AGAINST (:query IN BOOLEAN MODE) AS score
FROM hb_articles
WHERE MATCH(title,edition) AGAINST(:query IN BOOLEAN MODE)
HAVING score <= 3 //or >= 3 I always forget how match against works.
ORDER BY score DESC');