在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)