1

我有这张桌子

**

--------------------------------------------------
| id    | fname       | lname      | age
--------------------------------------------------
| 1     | John        | Smith      | 20
-------------------------------------------------
| 2     | John Craig  | Smith      | 20
-------------------------------------------------- 
| 3     | John Shaw   | Smith      | 20
--------------------------------------------------

MYSQL查询:

select id from person where concat(fname, lname) LIKE = '%johnsmith%'- 这个可以

选择 id 但如果姓氏中有两个单词,如下所示:

select id from person where concat(fname, lname) LIKE = '%johncraigsmith%'

它不会显示任何结果。

为什么?你能帮助我吗?

4

1 回答 1

2

因为你在john和之间有一个空格craig。那行得通

select id from person 
where replace(concat(fname, lname),' ','') LIKE = '%johncraigsmith%'

但这对性能来说很糟糕。会更好

select id from person 
where lname = 'smith'
and fname = 'john craig'
于 2013-09-27T03:32:47.433 回答