Однако вы привели меня к созданию решения выше!
тоящее время я работаю над поиском в реальном времени, и мне нужно найти части имени в двух столбцах (нам нужно разделить имя и фамилию). Я лично хотел бы сохранить команду короткой, однако единственный способ, которым я смог заставить это работать:
Пользователь ищет
John Doe
Сгенерированный SQL-запрос
SELECT * FROM users WHERE
(first_name LIKE '%john%' OR last_name LIKE '%john%') AND
(last_name LIKE '%doe%' OR last_name LIKE '%doe%');
Поле поиска - это одно поле, поэтому я делаю простое разделение по пробелам. В большинстве случаев это не выходит за рамки трех наборов предложений, просто было интересно, есть ли лучший способ сделать это.
НОТА: Я хотел бы иметь возможность сделать частичное соответствие. Так что я должен быть в состоянии найти Джона Доу, если я ищу "Джон До"
РЕШЕНИЕ Однако с помощью Роландо я нашел решение, опубликованное для всех, кто найдет это. Следуйте его инструкциям о том, как создать индекс ниже, затем выполните это:
SELECT * FROM users WHERE
(MATCH(first,last) AGAINST ('+john* +do*' IN BOOLEAN MODE))