У меня есть такой стол
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.
Я думаю, что вы хотите:
WHERE CONCAT_WS(' ', name, surname, email, email2, tel) REGEXP REPLACE(CONCAT('%', $_POST['search'], '%'), ' ', '|')
Вы хотите, чтобы вертикальная черта получила «ИЛИ» для регулярного выражения.
Других решений пока нет …