2011-06-22 11 views
5

Çok fazla saat sonra bunun cevabını bulamıyorum.Satır ve yankı sayısında ve sütun adında en yüksek değeri bul

İlk benim masa

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

nasıl satırda en yüksek değeri bulmak ve colomun adını gösteriyor.

three - 23 
+1

) o yayına başvurun?) – Manuel

+3

http://stackoverflow.com/questions/246701/what-i ([verilerinizi Normale] s-normalizasyon-veya-normalizasyon-neden-it-it-önemli) – YXD

+1

Verileriniz yapmak istediğinize göre normalize edilmez - MySQL'de kolayca PIVOT yapamazsınız. – Konerak

cevap

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

Sadece bunu denedim ve Bunu sürekli olarak "Resource id # 3" sonucu olarak alıyorum. Ne anlama geliyor. Sütun 3? mysql tablosunu kontrol ettim ve sütun en yüksek sayıya sahip. Şaşkınlık karmaşamda – Darren

+0

'u karıştırdım, cevapları için her birine teşekkür etmeyi unuttum. Teşekkürler çocuklar, gerçekten yabancıların birbirlerine yardım etmeye istekli olmaları şaşırtıcı. İnsanlık iyi – Darren

+0

Michael sadece size ekstra bir şey söylemek istedim. Her şey çalışıyor gibi görünüyor. Hala "Resorcue ID # 3" aldım, bunun ne anlama geldiğinden emin değilim ama önemli değil. $ Row yankılanmak bana coloum adını veriyor gibi görünüyor. Şimdi kodumun geri kalanıyla devam edebilirim. Çok teşekkür ederim. – Darren

1

Ne yapmak gerektiğini düşünüyorum: MySQL greatest value in row? (i varsa ihtiyaçlarına uygun OLDUĞUNU POST DAN cevabını adapte :

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 

bu burada bakmak istemiyorum sadece eğer olduğunu Bilginin (php almaya çalışırken yerden problemleri, zaten

+0

Neden başka birinin cevabını gönderiyorsunuz? Bu, yukarıdaki yorumlarda yayınlanan bağlantıdan kopyalanır. – Daric

+0

Tam olarak yazdıklarım buydu (cevabını ihtiyacınıza göre uyarladım 'eğer cevabı diğer cevaptan uyarlamak istemiyorsanız, sizin için yapıyorum, açık sanıyordum) –

İlgili konular