我正在尝试根据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%'
我不知道为什么会发生这种情况,即使我们使用了正确的查询。有关此问题的解决方案吗?
答案 0 :(得分:1)
你可以试试这个:
select *
from users
where full_name like concat('%', replace('adam bell nithan albrt', ' ', '%'), '%');
它用通配符替换空格。但是,您仍然坚持使用名称的顺序。
我认为您应该查看全文搜索功能(请参阅here)。我认为它可能正是您所需要的,而且性能远远优于like
。