mysql连接字符串,行值作为选择查询中每一行的列名(仅通过查询)

标签 mysql concatenation

下面是我的表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/

相关文章:

MySQL根据不同字段中的 bool 值在select语句中进行多个求和

mysql - 在插入之前检查是否存在某些东西是不好的做法吗

c++ - 字符串不以 null 结尾

c++ - C++ 中的字符串和整数连接

mysql - 创建哈希的 SQL 语法

php - 使用 PHP 将 Base64 图像保存到 MySQL blob 字段

mysql - 此路线图的数据库设计

mysql - 如何按 ASC 顺序获取 MySql 不同(不同)值

MySQL 我如何完成这个 select concat?

xpath - 如何在VB6中将串联字符串评估为索引XPath表达式