2011-06-22 6 views
5

Po zbyt wielu godzinach nie mogę znaleźć odpowiedzi na to.Znajdź najwyższą wartość w wierszu i numerze echa i kolumnie

Pierwszy mój stół

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

Jak znaleźć największą wartość w wierszu i pokazać colomun nazwę.

three - 23 
+1

skąd ty próbujesz uzyskać informacje (PHP?) – Manuel

+3

[Normalizacja danych] (http://stackoverflow.com/questions/246701/what-i s-normalizacja-or-normalizacja-why-it-it-important) – YXD

+1

Twoje dane nie są normalizowane zgodnie z tym, co chcesz zrobić - nie możesz łatwo PIVOT w MySQL. – Konerak

Odpowiedz

3
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   
+0

po prostu próbowałem tego i ciągle otrzymuję to jako mój wynik "Identyfikator zasobu # 3". Co to znaczy. Kolumna 3? ive sprawdził tabelę mysql, a kolumna pierwsza ma najwyższy numer. Jestem zdezorientowany – Darren

+0

w moim pośpiechu zamieszania zapomniałem podziękować każdemu za ich odpowiedź. Dzięki chłopaki, to naprawdę niesamowite, że obcy są gotowi pomóc sobie nawzajem. Ludzkość jest dobra. – Darren

+0

Michael właśnie chciał ci podziękować. Wszystko wydaje się działać. Nadal dostaję "Resorcue id # 3", nie wiem co to znaczy, ale to nie ma znaczenia. Echoing $ row wydaje mi się nadać nazwę kolorystyczną. Mogę teraz kontynuować z resztą mojego kodu. Dziękuję bardzo. – Darren

1

myślę, że należy zrobić:

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 

to tylko jeśli nie chcesz wyglądać tutaj: MySQL greatest value in row? (i dostosowany odpowiedzi z tego stanowiska do swoich potrzeb, jeśli masz problemy, zresztą odnoszą się do tego postu)

+0

Dlaczego publikujesz odpowiedź innej osoby? To jest kopiowane z linku zamieszczonego w komentarzach powyżej. – Daric

+0

To jest dokładnie to, co napisałem! (Dostosowałem odpowiedź do twoich potrzeb oznacza "jeśli nie chcesz dostosować odpowiedzi z drugiej odpowiedzi robię to dla ciebie, myślałem, że jestem czysty) –

Powiązane problemy