如何在mysql join中使用用户定义的字符串

时间:2016-01-08 08:03:40

标签: mysql

我正在为变量赋值并在连接中使用它。但它似乎把它当作字面意思。我该如何解决?

select
@colname:=a.colname
from
a_details a,
b_details b
where
a.id = b.id
and a.value = b.@colname

2 个答案:

答案 0 :(得分:0)

使用此修复程序尝试您的代码:

select
@colname:=a.colname
from
a_details a,
b_details b
where
a.id = b.id
and a.value = @colname

答案 1 :(得分:0)

您无法像这样动态指定列名。您可以使用CASE选择相应的列,但必须明确列出它们。

SELECT CASE a.value
        WHEN 'col1' THEN b.col1
        WHEN 'col2' THEN b.col2
        WHEN 'col3' THEN b.col3
        ...
       END AS col
FROM a_details AS a
JOIN b_details AS b ON a.id = b.id

如果您不想在代码中编写此代码,则可以使用存储过程来执行动态SQL。