在MySQL中连接带字段值的string

我有需要在MySQL查询中连接一个字段与字段值,以便LEFT JOIN两个表。

表一有一个名为“category_id”的数值,如61,78,94等。

表二有一个称为“查询”的列,它涉及一个请求路由机制,它具有诸如“product_id = 68”,“category_id = 74”,“manufacturer_id = 99”等的值。

所以在我的查询中,我需要连接表中的连接string派生从一个string和“category_id”列的值匹配查询字段。

我的SQL语句目前是:

SELECT * FROM tableOne LEFT JOIN tableTwo ON tableTwo.query = 'category_id=' + tableOne.category_id 

我已经尝试使用|| 运算符而不是+运算符,但仍然没有运气。 有可能在MySQL中这样做,还是我在这里跳了枪?

你有没有尝试过使用concat()函数?

 ON tableTwo.query = concat('category_id=',tableOne.category_id) 
 SELECT ..., CONCAT( 'category_id=', tableOne.category_id) as query2 FROM tableOne LEFT JOIN tableTwo ON tableTwo.query = query2 

这是一个很好的答案:

SET sql_mode='PIPES_AS_CONCAT';

在这里find更多: https : //stackoverflow.com/a/24777235/4120319

以下是完整的SQL:

 SET sql_mode='PIPES_AS_CONCAT'; SELECT * FROM tableOne LEFT JOIN tableTwo ON tableTwo.query = 'category_id=' || tableOne.category_id; 

MySQL使用CONCAT()来连接string

 SELECT * FROM tableOne LEFT JOIN tableTwo ON tableTwo.query = CONCAT('category_id=', tableOne.category_id)