【问题标题】:MySQL: select columns based on other column valueMySQL:根据其他列值选择列
【发布时间】:2018-09-24 04:16:15
【问题描述】:

我有一个名为 t 的表,

focus, H, Li, Be, B, C
    H, 1,  2,  3, 4, 5      
   Be, 6,  7,  8, 9, 10

我想写一个 MySQL 查询来根据focus 列的值选择这个表中的列,例如从表 t 中它会返回:

H, Be 
1, 3
6, 8

我知道这很容易写:

select H, Be from t

但是,如果表 t 的内容发生变化,这不是动态分辨率。例如,假设表 t 现在是:

 focus, H, Li, Be, B, C
     B, 5,  0,  0, 4, 4      
     C, 8,  9,  1, 7, 3

以前的代码不起作用。它仍然返回相同的结果,而不是:

B, C      
4, 4
7, 3

我的问题是,是否有可能,我们编写了一个 MySQL 脚本来根据 focus 列的值来选择列?

【问题讨论】:

  • 这个表格设计对我来说没什么意义。我猜你想要的是一种动态支点,所以你应该可以在this question中找到帮助
  • 您不能在 SQL 中执行此操作,必须在存储过程中执行才能生成动态查询。
  • 可能XY Problem?你真的想用这个来完成什么?我和巴尔玛在一起。我也不明白你的桌子设计。

标签: mysql sql mysql-workbench


【解决方案1】:

os 不是根据焦点值选择列,为什么要根据列选择焦点。请看下面的例子

Declare @sql varchar(10),@SQLString varchar(100)
Set @SQL = ‘H’

Set @SQLString  = ‘Select focus, ‘+@sql +
‘From tablet
Where focus = ‘+@SQL

Exec @SQLString  

【讨论】:

    猜你喜欢
    • 2022-07-06
    • 2020-03-07
    • 1970-01-01
    • 2021-11-12
    • 2021-09-18
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 2016-10-03
    相关资源
    最近更新 更多