次のようなクエリがあります。
SELECT t1, t2,
IF(MATCH(t2) AGAINST ('input*' IN BOOLEAN MODE), 10, 0) AS matches,
IF(t2 LIKE '%input%', 2, 0) AS similar
FROM tbl
WHERE t2 LIKE '%input%'
ORDER BY (matches + similar) DESC
LIMIT 5
クエリは正常に機能しますが、私が懸念しているのは、MySQLがt2がLIKE'%input%'であるかどうかを2回チェックしているかどうか、または最初の結果をキャッシュしているかどうかです(これはすばらしいでしょう!)。
ありがとう