52

我一直试图让它工作很长一段时间,但它似乎不起作用,也许它甚至不可能,我想要做的是使用 like 执行 MySQL 连接查询,比如这个我发现的例子...

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

但它似乎根本不起作用,任何可以提供的帮助都会很棒,谢谢!

4

3 回答 3

102

尝试

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

MySQL 的字符串连接与其他数据库不同,所以如果你想移植你的应用程序,你需要有一个替代版本,||用作连接运算符,正如 Michael 在另一个答案中提到的那样。但是这个运算符在 MySQL 中不起作用,因为它意味着or.

于 2009-12-18T21:32:50.930 回答
1

这个怎么样:

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

由于您无论如何都要从两个表中选择所有内容,因此这可能会让您到达那里。

于 2009-12-18T21:32:49.277 回答
0
SELECT p.products_id, pd.products_name, p.products_model
FROM products_description pd
JOIN products p ON p.products_id = pd.products_id
WHERE pd.products_name LIKE CONCAT( '%', p.products_model, '%' )
LIMIT 0 , 100

首先,您必须通过 (p.products_id = pd.products_id) 和 LIMIT 限制您的请求。看看花了多少时间。之后你可以去和(WHERE)进行比较。如果您要直接在 JOIN 中进行比较,如果列表中有 2 万个项目,您将放下您的数据库。谨防。)

于 2018-07-14T20:50:34.247 回答