下面是我的表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 做到这一点吗?
最佳答案
你可以试试动态sql。使用您的选择填充字符串变量,例如: DECLARE @str varchar(50) = 'SELECT * FROM TABLE WHERE colname@id = ''' + 'Eben' + '''' 然后将占位符字符串 ("@id") 替换为您想要的列号,例如: 选择替换(@str,'@id',2)
最后要实际执行语句只需使用“EXEC”+ 语句。 IE: 执行(@str)
关于mysql连接字符串,行值作为选择查询中每一行的列名(仅通过查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32950010/