MYSQL-多列值更改

MYSQL-多列值更改,mysql,sql,Mysql,Sql,我试图将150列的值更改为以下值: '0 = Not provided' ' 1 = Yes ' ' 2 = No ' 我可以为每一列使用case语句来实现这一点。但问题是,它会将所有内容放在一列中。有没有一种方法可以在不写150个案例陈述的情况下,为每一个单独的专栏都这样做?列需要按特定顺序排列 例如: SELECT CASE WHEN Answer.Question1_ID is null THEN 'Not Provided' WHEN An

我试图将150列的值更改为以下值:

 '0 = Not provided'
' 1 = Yes '
' 2 = No '
我可以为每一列使用case语句来实现这一点。但问题是,它会将所有内容放在一列中。有没有一种方法可以在不写150个案例陈述的情况下,为每一个单独的专栏都这样做?列需要按特定顺序排列

例如:

SELECT  CASE 
          WHEN Answer.Question1_ID is null THEN 'Not Provided'
          WHEN Answer.Question1_ID = 1 THEN 'Yes'
          WHEN Answer.Question1_ID = 2 Then 'No'
End as 'Question1',
  CASE 
          WHEN Answer.Question2_ID is null THEN 'Not Provided'
          WHEN Answer.Question2_ID = 1 THEN 'Yes'
          WHEN Answer.Question2_ID = 2 Then 'No'
End as 'Question2'
。 .

从答案

有没有一种方法可以在不写150个案例陈述的情况下,为每一个单独的专栏都这样做

没有


如果需要,您可以使用程序编写case语句。

这就是为什么您从不创建这样的表:以后查询它们会变成一场噩梦。哇。。。150列:Dso您是否有问题1->问题150?你真的应该规范化这个表,然后对子表进行简单/琐碎的更新查询。我认为你可以用动态SQL来实现这一点,但是是的,150列是相当大的。问题是你的问题在不同的列中。如果你把问题分为几行,那么你就不必重复练习150次。