Получить столбец записи MySQL - PullRequest
3 голосов
/ 03 мая 2010

Есть ли возможность получить имя столбца, к которому относится запись в базе данных?

Возможно, у меня есть три столбца с именами столбцов col1, col2 и col3. Теперь я хочу выбрать для каждого столбца столбец с максимальной записью, что-то вроде этого.

Select name_of_column(max(col1,col2,col3)).

Я знаю, что могу запросить имя столбца по его порядковому положению в таблице information_schema.COLUMNS, но как мне узнать порядковый номер записи базы данных в таблице?

Ответы [ 3 ]

1 голос
/ 03 мая 2010

Если вы хотите реализовать его в чистом SQL, вы можете использовать оператор CASE и дополнительную переменную:

 SELECT @m := GREATEST(col1, col2), 
 CASE @m 
      WHEN col1 THEN 'col1' 
      WHEN col2 THEN 'col2' 
 END 
 FROM my_table
1 голос
/ 03 мая 2010

Вы можете сделать это:

select
    case true
        when col1 > col2 and col1 > col3 then 'col1'
        when col2 > col1 and col2 > col3 then 'col2'
        when col3 > col1 and col3 > col2 then 'col3'
    end 
from
    mytable

Но что, если максимальное значение отображается в нескольких столбцах?

1 голос
/ 03 мая 2010

Это покажет вам столбцы из таблицы

SHOW COLUMNS FROM 'table';

Затем вам придется перебирать результаты на языке сценариев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...