2011-06-22 43 views
5

Sau quá nhiều giờ, tôi không thể tìm thấy câu trả lời cho điều này.Tìm giá trị cao nhất trong hàng và số echo và tên cột

Đầu tiên bàn của tôi

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

Làm thế nào để tìm ra giá trị cao nhất trong dòng và hiển thị tên colomun.

three - 23 
+1

từ nơi bạn đang cố gắng để có được những thông tin (php?) – Manuel

+3

[Đồng hóa dữ liệu của bạn] (http://stackoverflow.com/questions/246701/what-i s-normalization-or-normalization-why-is-it-important) – YXD

+1

Dữ liệu của bạn không được chuẩn hóa theo những gì bạn muốn làm - bạn không thể dễ dàng PIVOT trong MySQL. – Konerak

Trả lời

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

ive tôi liên tục nhận được điều này như là kết quả của tôi "Tài nguyên id # 3". Điều đó có nghĩa là gì. Cột 3? ive kiểm tra bảng mysql và cột một có số lượng cao nhất. Im bối rối – Darren

+0

trong sự vội vã của tôi về sự nhầm lẫn tôi quên cảm ơn mọi người cho câu trả lời của họ. Vì vậy, cảm ơn các bạn, thật sự tuyệt vời khi những người lạ sẵn sàng giúp đỡ lẫn nhau. Nhân loại là tốt – Darren

+0

Michael chỉ muốn nói lời cảm ơn thêm cho bạn. Tất cả dường như đang hoạt động. Tôi vẫn nhận được "Resorcue id # 3", không chắc chắn điều đó có nghĩa là gì nhưng nó không quan trọng. Echoing $ row dường như cho tôi tên coloum. Tôi có thể tiếp tục với phần còn lại của mã của tôi bây giờ. Cảm ơn bạn rất nhiều. – Darren

1

Tôi nghĩ rằng bạn nên làm:

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 

đây chỉ là nếu bạn không muốn nhìn ở đây: MySQL greatest value in row? (i thích nghi câu trả lời từ đó POST để phù hợp với nhu cầu của bạn nếu bạn có vấn đề, dù sao tham khảo bài đăng đó)

+0

Tại sao bạn đăng câu trả lời của người khác? Điều này được sao chép từ liên kết được đăng trong các nhận xét ở trên. – Daric

+0

Đó là chính xác những gì tôi đã viết (tôi đã thích nghi câu trả lời cho phù hợp với nhu cầu của bạn có nghĩa là 'nếu bạn không muốn thích ứng với câu trả lời từ câu trả lời khác tôi làm điều đó cho bạn, tôi nghĩ tôi đã rõ ràng) –

Các vấn đề liên quan