在 mysql 中的 CONCAT 中添加通配符
Add wildcard inside CONCAT in mysql
我想搜索三个字段:id、name 和 address。我希望我的搜索有点智能。
订阅者table
id | firstname | lastname | address
N29-0001 | John | Doe | California
N29-0002 | Jonathan | Morson | Miami
我目前的查询
select subscriberid, CONCAT(firstname," ",lastname) as fullname, address, city from subscriber where id like "%N29 Joh%" or CONCAT(firstname," ",lastname) like "%N29 Joh%" or address like "%N29 Joh%" or city like "%N29 Joh%"
如果我输入 N29 Joh,我希望我的查询能够搜索,它将搜索 John Doe。
您可能需要全文索引。但是,如果您想要匹配任何单词并且不关心性能,您可以使用正则表达式:
select subscriberid, CONCAT(firstname, ' ', lastname) as fullname,
address, city
from subscriber
where subscriberid regexp 'N29|Joh' or
concat(firstname, ' ', lastname) like 'N29|Joh' or
address like 'N29|Joh' or
city like 'N29|Joh';
我想搜索三个字段:id、name 和 address。我希望我的搜索有点智能。
订阅者table
id | firstname | lastname | address
N29-0001 | John | Doe | California
N29-0002 | Jonathan | Morson | Miami
我目前的查询
select subscriberid, CONCAT(firstname," ",lastname) as fullname, address, city from subscriber where id like "%N29 Joh%" or CONCAT(firstname," ",lastname) like "%N29 Joh%" or address like "%N29 Joh%" or city like "%N29 Joh%"
如果我输入 N29 Joh,我希望我的查询能够搜索,它将搜索 John Doe。
您可能需要全文索引。但是,如果您想要匹配任何单词并且不关心性能,您可以使用正则表达式:
select subscriberid, CONCAT(firstname, ' ', lastname) as fullname,
address, city
from subscriber
where subscriberid regexp 'N29|Joh' or
concat(firstname, ' ', lastname) like 'N29|Joh' or
address like 'N29|Joh' or
city like 'N29|Joh';