下面是我的表TABLE
id colname1 colname2 colname3
1 Alex John Mary
2 Alyssa Eben Stephen
3 Sandra Tina William
我尝试使用以下查询
SELECT * FROM TABLE WHERE CONCAT('colname',id) = 'Eben'
我预计结果将来自第2行第2列。但我一无所获。我提到了许多指导使用GROUP_CONCAT的解决方案,但我没有任何工作。 这可以用mysql做到吗?
答案 0 :(得分:0)
您可以尝试使用动态sql。使用您的选择填充字符串变量,例如: DECLARE @str varchar(50)=' SELECT * FROM TABLE WHERE colname @ id =''' +' Eben' +'''' 然后将占位符字符串(" @ id")替换为您想要的列号,例如: 选择REPLACE(@str,' @ id',2)
最后要实际执行语句,只需使用" EXEC" +声明。即: 执行(@str)
答案 1 :(得分:0)
我必须创建另一个答案,因为这个论坛不允许我在评论中使用@(&符号)。
DECLARE @str varchar(50) = 'SELECT * FROM TABLE WHERE colname@id = ''' +
'EBEN' + ''''
select @str = REPLACE(@str, '@id', 2)
select @str '@str' --This is just to examine the code, get the results of
--this and run it to test
--you should get this: SELECT * FROM TABLE WHERE colname2 = 'EBEN'
EXEC (@str) --this will actually execute your code