Mysql поля поиска другой порядок

У меня есть такой стол

name  | surname   | email         | tel
Edwin | Williams  | edwin@aa.com  | 123456
Luke  | Evan      | luke@bb.com   | 987456

Мне нужно искать «Эдвин Уильямс» или «Уильямс Эдвин» как то же самое.

Я старался

CONCAT_WS (' ', name, surname, email, email2) LIKE '%".addslashes($_POST['search'])."%'
OR
CONCAT_WS (' ', surname, name, email, email2) LIKE '%".addslashes($_POST['search'])."%'

но мне не нравится, в поиске «123456 Эдвин» я ничего не нахожу.

У меня есть таблица в InnoDb, я предпочитаю не использовать полный текст MyISAM.

0

Решение

Я думаю, что вы хотите:

WHERE CONCAT_WS(' ', name, surname, email, email2, tel) REGEXP REPLACE(CONCAT('%', $_POST['search'], '%'), ' ', '|')

Вы хотите, чтобы вертикальная черта получила «ИЛИ» для регулярного выражения.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector