我正在为变量赋值并在连接中使用它。但它似乎把它当作字面意思。我该如何解决?
select
@colname:=a.colname
from
a_details a,
b_details b
where
a.id = b.id
and a.value = b.@colname
答案 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。