2009-12-18 236 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+'%'; 

既然你从两个表中选择反正一切,这可能会得到你。