2013-09-27 72 views
1

我有這個表LIKE查詢SQL中連接值不工作與空間

**

-------------------------------------------------- 
| 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%'

它不會顯示結果。

爲什麼? 你能幫我嗎?

回答

2

因爲你有一個johncraig之間的空間。這將工作

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

但這是可怕的性能順便說一句。最好是

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

我只有'johncraigsmith'無法單獨識別它.. – woninana

+0

我更新了。用'replace('john craigsmith','','')' –

+0

太棒了!有用!謝謝! – woninana