简体   繁体   English

MySQL搜索字段不同顺序

[英]Mysql search fields different order

I have a table like this 我有这样的桌子

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

I need to search "Edwin Williams" or "Williams Edwin" as the same. 我需要搜索“ Edwin Williams”或“ Williams Edwin”。

I tried 我试过了

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

but I don't like it, in I search "123456 Edwin" I don't find anything. 但我不喜欢它,在搜索“ 123456 Edwin”时,我什么也没找到。

I have table in InnoDb, I prefer not use MyISAM fulltext. 我在InnoDb中有表,我更喜欢不使用MyISAM全文。

I think you want: 我想你要:

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

You want a vertical bar to get "OR" for a regular expression. 您希望竖线为正则表达式获取“ OR”。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM