Я запускаю следующий оператор SQL из сценария PHP:
SELECT PHONE, COALESCE(PREFERREDNAME, POPULARNAME) FROM distilled_contacts WHERE PHONE LIKE :phone LIMIT 6
Как очевидно, оператор возвращает первые 6 совпадений с рассматриваемой таблицей. Значение, которое я привязываю к переменной :phone
, выглядит примерно так:
$search = '%'.$search.'%';
Где $search
может быть любой последовательностью цифр. Подстановочные знаки гарантируют, что поиск, скажем, 918
, вернет каждую запись, где поле PHONE
содержит 918
:
- 9180078961
- 9879189872
- 0098976918
- 918
- ...
Моя проблема заключается в том, что произойдет, если существует запись со значением, которое точно соответствует строке поиска, в данном случае 918
(4-й элемент в списке выше). Поскольку есть LIMIT 6
, будут получены только первые 6 записей, которые могут содержать или не содержать запись с точным совпадением. Есть ли способ гарантировать, что результаты всегда будут содержать запись с точным совпадением в верхней части результирующего списка, если он будет доступен?