获取动态列值

时间:2013-03-15 13:43:32

标签: mysql subquery concat

我有一个表学生,其中包含:

  student_id , prefered_cell , cell_1 , cell_2 , cell_3 

现在在我们的首选单元格值下(cell_1,cell2,cell3)

在mysql中获取首选单元格值的最佳方法是什么?

这些是可用的行:

1 , 'cell_1' ,  '123-321-1231' , '431-2133-321' , '123-123-4111'
2 , 'cell_2' ,  '122-333-3333' , '455-123-123' , '123-421-2345'

所以我想拥有学生1和2的首选号码:

将获得:

1 , '123-321-1231'
2 , '455-123-123'

2 个答案:

答案 0 :(得分:1)

尝试此查询。

Select student_id, case when prefered_cell = 'cell_1' then cell_1 
                        when prefered_cell = 'cell_2' then cell_2
                        when prefered_cell = 'cell_3' then cell_3
                        else '0'
                        End  as cell_value from student

答案 1 :(得分:1)

我们在sql中切换。你可以使用那个

select student_id ,case  from table_name

 CASE prefered_cell 
    WHEN 'cell_1' THEN 'value is cell_1 '
    WHEN 'cell_2' THEN 'value is cell_2'
    WHEN 'cell_3'= 'cell_3' then cell_3
  END
  else '0'
   End from student