SELECT *
FROM users
WHERE name LIKE "%дмитрий%" OR
name LIKE "%елена%" OR
name LIKE "%мария%" OR
ORDER BY
(name LIKE "%дмитрий%") DESC,
(name LIKE "%елена%") DESC,
(name LIKE "%мария%") DESC
Вам нужно попробовать выполнить объединение запросов:
SELECT * FROM users WHERE name LIKE "%дмитрий%"
UNION ALL
SELECT * FROM users WHERE name LIKE "%елена%"
UNION ALL
SELECT * FROM users WHERE name LIKE "%мария%"
Как вариант есть способ через case, но вариант begemot_sun возможно отработает быстрее но на всякий случай:
SELECT *,
case
when name like '%дмитрий%' then 1
when name like '%елена%' then 2
when name like '%мария%' then 3
end as sort
FROM users
WHERE first_name LIKE "%дмитрий%" OR
first_name LIKE "%елена%" OR
first_name LIKE "%мария%"
order by sort