MySQL连接查询使用喜欢?

时间:2009-12-18 21:30:43

标签: mysql join sql-like

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

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

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

3 个答案:

答案 0 :(得分:81)

尝试

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

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

答案 1 :(得分:1)

相反如何:

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

因为你无论如何都要从两个表中选择所有内容,这可能会让你在那里。

答案 2 :(得分: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万项,您将放下数据库。提防。)