Лучший порядок результатов поиска mysql / php

У меня есть запрос mysql / php, который ищет через базу данных и возвращает совпадения на основе строки поиска, введенной пользователем, она сортируется по заголовку по возрастанию, однако нам бы очень хотелось, чтобы она сортировалась по наилучшему совпадению (аналогично способ ElasticSearch оценивает результаты поиска со счетом).

В настоящее время при поиске «quake II» список результатов выглядит так:

- Quake - Quake 4 - Quake II - Quake III Arena 

Ожидаемый список результатов должен быть:

 - Quake II (corresponding exactly to the search) - Quake III Arena (containing entirely the search) - Quake - Quake 4 

Текущий запрос php / mysql:

 $nameKeys = explode(" ", $gamenamethathasbeensearchedfor); $query = "SELECT id FROM games WHERE GameTitle LIKE '%$nameKeys[0]%'"; for($i = 1; $i <= count($nameKeys); $i++) { if($nameKeys[$i] != "" || $nameKeys[$i] != " " || $nameKeys[$i] != " " || $nameKeys[$i] != " ") { $query .= " AND GameTitle LIKE '%$nameKeys[$i]%'"; } }