select sentence, score from (
(
SELECT MATCH (sentence) AGAINST ('january february march april' IN BOOLEAN MODE) AS score,
sentence_id, sentence
FROM articles.sentences
WHERE MATCH (sentence) AGAINST ('january february march april' IN BOOLEAN MODE)
and MATCH (sentence) AGAINST ('january february march april' IN BOOLEAN MODE) =4
order by rand()
limit 0,20
) union
(
SELECT MATCH (sentence) AGAINST ('january february march april' IN BOOLEAN MODE) AS score,
sentence_id, sentence
FROM articles.sentences
WHERE MATCH (sentence) AGAINST ('january february march april' IN BOOLEAN MODE)
and MATCH (sentence) AGAINST ('january february march april' IN BOOLEAN MODE) =3
order by rand()
limit 0,20
) union
(
SELECT MATCH (sentence) AGAINST ('january february march april' IN BOOLEAN MODE) AS score,
sentence_id, sentence
FROM articles.sentences
WHERE MATCH (sentence) AGAINST ('january february march april' IN BOOLEAN MODE)
and MATCH (sentence) AGAINST ('january february march april' IN BOOLEAN MODE) =2
order by rand()
limit 0,20
)
) a
order by rand()
EXPLAIN:
1 PRIMARY <derived2> ALL (null) (null) (null) (null) 60 Using temporary; Using filesort
2 DERIVED sentences fulltext fulltext_sentence fulltext_sentence 0 1 Using where; Using temporary; Using filesort
3 UNCACHEABLE UNION sentences fulltext fulltext_sentence fulltext_sentence 0 1 Using where; Using temporary; Using filesort
4 UNCACHEABLE UNION sentences fulltext fulltext_sentence fulltext_sentence 0 1 Using where; Using temporary; Using filesort
(null) UNION RESULT <union2,3,4> ALL (null) (null) (null) (null) (null)