Найти наибольшее значение в строке и номер эха и имя столбца - PullRequest
5 голосов
/ 22 июня 2011

Спустя слишком много часов я не могу найти ответ на этот вопрос.

Сначала моя таблица

  id | one | two | three | four | five | galname
-------------------------------------------------
  1  |  2  |  5  |   23  |  4   | 5    |  Bob

Как мне найти самое высокое значение в строке и показать имя colomun.

three - 23

Ответы [ 2 ]

3 голосов
/ 22 июня 2011
 select  id,  GREATEST(one, two, three, four, five) value,
        case GREATEST(one, two, three, four, five)
         when one then 'one'
         when two then 'two'
         when three then 'three'
         when four then 'four'
         when five then 'five' end column_name
 from your_table        
1 голос
/ 22 июня 2011

Я думаю, что вы должны сделать:

SELECT CASE GREATEST(`id`,`one`, `two`, `three`, `four`, `five`)
         WHEN `id` THEN `id`
         WHEN `one` THEN `one`
         WHEN `two` THEN `two`
         WHEN `three` THEN `three`
         WHEN `four` THEN `four`
         WHEN `five` THEN `five`
         ELSE 0
      END AS maxcol,
      GREATEST(`id`,`one`, `two`, `three`, `four`, `five`) as maxvalue 
    FROM tbl

это просто, если вы не хотите смотреть здесь: Самое большое значение MySQL в строке? (я адаптировал ответ ОТ ЭТОГОPOST, чтобы соответствовать вашим потребностям, если у вас есть проблемы, в любом случае обратитесь к этому сообщению)

...