2016-07-05 7 views
1

это PHPMyAdmin стол: user_test_detail this is phpmyadmin table : user_test_detail как получить имя столбца в MySQL

Я хочу привести, как показано ниже

(
[1] => option_a 
[2] => option_d 
[3] => option_e 
[4] => option_d 
) 
+2

Не ясно, что вы пытаетесь достичь здесь. –

+0

1,2,3,4 - это question_id и option_a, option_d, option_e, option_d - значения. Он показывает, где значение равно 1, что имя поля появится перед question_id –

+0

Это все столбцы в таблице 'user_test_detail'? – Blank

ответ

1

GET IT формируют информационную схему

mysql> SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_NAME="TEST"; 
+-------------+ 
| COLUMN_NAME | 
+-------------+ 
| user_id  | 
| NAME  | 
| value  | 
+-------------+ 
3 rows in set (0.00 sec) 
1

Попробуйте это.

select 
    case 
     when option_a = '1' then `option_a` 
     when option_b = '1' then `option_b` 
     when option_c = '1' then `option_c` 
     when option_d = '1' then `option_d` 
     when option_e = '1' then `option_e` 
    end as colName 
from user_test_detail 
order by question_id 

Это только для этого 5 столбцов в таблице user_test_detail, и если вы будете менять структуру этой таблицы в будущем, вы должны использовать динамический SQL.

Отредактировано:

select 
    max(case when question_id = 1 then colName end) as `1`, 
    max(case when question_id = 2 then colName end) as `2`, 
    max(case when question_id = 3 then colName end) as `3`, 
    max(case when question_id = 4 then colName end) as `4` 
from (
    select 
     case 
      when option_a = '1' then `option_a` 
      when option_b = '1' then `option_b` 
      when option_c = '1' then `option_c` 
      when option_d = '1' then `option_d` 
      when option_e = '1' then `option_e` 
     end as colName, 
     question_id 
    from user_test_detail 
    order by question_id 
) t 
-- group by question_id 
+0

вы можете получить его форму информации схемы не нужно писать сложный запрос –

+0

@MaheshMadushanka Знаете ли вы, что он не хотел, чтобы все столбцы в таблице, но столбцы со значением 1 и порядок от ' question_id'? – Blank

+0

да aggred не упоминалось в начальном вопросе –

Смежные вопросы