2009-12-18 38 views
32

我一直在試圖讓這個工作很長一段時間,但它似乎並沒有工作,也許這是不可能的,我想要做的是執行一個MySQL連接查詢使用像,這樣因爲這個例子中,我發現......mysql連接查詢使用like?

SELECT * 
FROM Table1 
INNER JOIN Table2 ON Table1.col LIKE '%' + Table2.col + '%' 

,但它只是似乎並沒有在所有的工作,可以給將是輝煌的任何幫助,謝謝!

回答

63

嘗試

SELECT * 
FROM Table1 
INNER JOIN Table2 ON Table1.col LIKE CONCAT('%', Table2.col, '%') 

MySQL不會把字符串連接不同於其他數據庫,所以如果你想將你的應用程序,你需要有地方||作爲連接運算符的替代版本,如邁克爾提到在另一個答案。這個操作符在MySQL中不起作用,因爲它意味着or

+2

+1和自殺,作爲我們對話的結果;-) – 2009-12-18 21:50:14

+0

ok現在可以工作,但它只返回幾行,當它應該返回更多,就像它只使用table1的第一行? – David 2009-12-18 21:53:56

+0

也許你想要的是一個交叉連接? select * from t1,t2 where t1.col ... – 2009-12-18 22:07:08

1

這個怎麼樣,而不是:

SELECT * FROM Table1, Table2 WHERE Table1.col LIKE '%'+Table2.col+'%'; 

既然你從兩個表中選擇反正一切,這可能會得到你。