如果缺少中间文本,则mysql查询无效

时间:2015-08-09 13:30:08

标签: php mysql

我正在尝试根据full_name搜索用户。我有数据库表,其中包含字段full_name

以下是表格的记录:users

ID      full_name
1       adam bell nithan jhon albrt
2       ali imam khan

如果我使用这样的查询,那么它将起作用,

select * from users where full_name like '%ali imam%'
select * from users where full_name like '%adam bell%'

但是,如果我这样搜索它将无法正常工作,

select * from users where full_name like '%adam bell nithan albrt%'
select * from users where full_name like '%ali khan%'

我不知道为什么会发生这种情况,即使我们使用了正确的查询。有关此问题的解决方案吗?

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

select *
from users
where full_name like concat('%', replace('adam bell nithan albrt', ' ', '%'), '%');

它用通配符替换空格。但是,您仍然坚持使用名称的顺序。

我认为您应该查看全文搜索功能(请参阅here)。我认为它可能正是您所需要的,而且性能远远优于like