LIKE查询sql不能与空间的连接值一起工作

时间:2013-09-27 03:29:50

标签: mysql sql-like

我有这张桌子

**

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

MYSQL QUERY:

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

选择ID 但如果姓氏中有两个单词如下:

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

它不会显示任何结果。

为什么呢? 你能救我吗?

1 个答案:

答案 0 :(得分:2)

因为johncraig之间有空格。那会起作用

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

但是在性能方面这很糟糕BTW。更好的是

select id from person 
where lname = 'smith'
and fname = 'john craig'