Mysql搜索字段顺序不同

时间:2017-09-12 14:16:33

标签: php mysql sql innodb

我有一张这样的表

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

我需要搜索" Edwin Williams"或者" Williams Edwin"同样的。

我试过

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

但我不喜欢它,在我搜索" 123456 Edwin"我什么都找不到。

我在InnoDb有桌子,我不喜欢使用MyISAM全文。

1 个答案:

答案 0 :(得分:0)

我想你想要:

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

您希望竖线显示正则表达式的“OR”。