2013-04-01 33 views
1

有沒有辦法從下面的表中選擇數據?如何將兩列中的兩個值結合在一個表中。

SELECT * FROM profile WHERE fname+" "+lname LIKE '%$name%' 

例如:

fname = "Lady" 
lname = "Gaga" 
$name = "lady g" is match 

就像Facebook的搜索引擎,當我輸入一個完整的名字,它將會顯示出更完整的名稱包括非打破空間的結果。

+1

'+'是算術加在MySQL。它不是**連線操作符。 –

回答

1

是,使用CONCAT()功能,像這樣:

SELECT * FROM profile WHERE CONCAT(fname,' ',lname) LIKE '%$name%' 
+0

非常感謝你,但是我發現了另外一個錯誤...當我插入一個「」時,它不會運行所有的PHP .... – user2018783

+0

如果你插入'「」'並且它不運行代碼,問題可能會發生因爲你正在使用'''來包裝查詢,請嘗試使用''''。 –

0

在MySQL中,你需要使用CONCAT()CONCAT_WS()來連接兩個對象。

SELECT * FROM profile WHERE CONCAT(fname, ' ', lname) LIKE '%$name%' 

OR

SELECT * FROM profile WHERE CONCAT_WS(' ', fname, lname) LIKE '%$name%' 
0

你會使用CONCAT功能。請記住,這可能會導致性能下降,因爲它不會正確使用索引。

SELECT * FROM profile WHERE CONCAT(fname," ",lname) LIKE '%$name%'

2

有肯定的是 - 你可以使用mysql CONCAT()功能 -

SELECT * FROM profile WHERE CONCAT(fname," ",lname) LIKE '%$name%' 

CONCAT()功能可以採取很多爭論,引用字符串作爲其文本值和字段名評估其價值從表中被查詢。因此,fnamelname必須是數據庫中字段的實際名稱。

here for some more in-depth documentation

相關問題