在 MySQL 中将字符串与字段值连接起来


Concatenate string with field value in MySQL

我需要在MySQL查询中将字符串与字段值连接起来,以便左连接两个表。

表一有一个名为"category_id"的列,其中包含数值,例如 61、78、94 等。

表二有一个名为"query"的列,它指的是请求路由机制,它有"product_id=68"、"category_id=74"、"manufacturer_id=99"等值。

因此,在我的查询中,当从集合字符串派生的串联字符串并且"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';

在此处查找更多信息: 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((连接字符串

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