Ben*_*Ben 53 php mysql sql concatenation
我需要在MySQL查询中将字符串与字段值连接起来,以便LEFT JOIN两个表.
表1有一个名为"category_id"的列,其中包含数值,例如61,78,94等.
表2有一个名为"query"的列,它引用了一个请求路由机制,它具有诸如"product_id = 68","category_id = 74","manufacturer_id = 99"等值.
因此,在我的查询中,我需要在从set字符串派生的串联字符串中加入表,并且"category_id"列的值与查询字段匹配.
我的SQL语句目前是:
SELECT * FROM tableOne
LEFT JOIN tableTwo
ON tableTwo.query = 'category_id=' + tableOne.category_id
Run Code Online (Sandbox Code Playgroud)
我尝试过使用|| 运算符而不是+运算符,但仍然没有运气.可以在MySQL中执行此操作,还是我在这里跳枪?
Wil*_*nah 96
你尝试过使用concat()函数吗?
ON tableTwo.query = concat('category_id=',tableOne.category_id)
Run Code Online (Sandbox Code Playgroud)
小智 10
SELECT ..., CONCAT( 'category_id=', tableOne.category_id) as query2 FROM tableOne
LEFT JOIN tableTwo
ON tableTwo.query = query2
Run Code Online (Sandbox Code Playgroud)
小智 9
这是一个很好的答案:
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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
131339 次 |
| 最近记录: |