Как настроить поиск match against для поиска даты и чисел?

Суть - найти элементы с помощью поиска, который будет сравнивать введенную строку с фамилией клиента, телефоном, номером столика (число от 1 до 63), датой и временем брони. Телефон в базе выглядит так - 79999999999, дата и время занесены в одно поле типа text и выглядит как 2019 11 25 09 00 00. Сейчас мой запрос выглядит так:
SELECT *, MATCH (name, telephone, table_number, date_time) AGAINST ('$search_query' IN BOOLEAN MODE) as 
                relev FROM reservations WHERE MATCH (name, telephone, table_number, date_time) AGAINST ('$search_query' IN BOOLEAN MODE)>0 
                ORDER BY relev DESC


$search_query как только не пытался строить - с числами какая-то беда. Не ищет. Фамилия и телефон ищутся, а номер столика и дата_время - нет.

Для примера $search_query +*36*+*Соколов* не выдаст ничего, хотя поле с такими данными есть.
А если *Соколов**36* то появятся все Соколовы и они не будут отсортированы. Да и если просто *36* ввести, то не появится ничего.

С датой например тоже непонятно. Match сравнивает всю строку? Должен ли вообще срабатывать *25**09* на строку 2019 09 25... или нет? Или *25 09*? Есть ли вообще разница в порядке чисел если они разделены пробелом?

Как я понял, цифры не ищутся... Или что? Как можно искать числа и дату? Может запрос изменить?
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы