是否有可能獲取數據庫條目所屬列的名稱?獲取mysql條目的列
也許我有三列與列名col1,col2和col3。現在我想爲每列選擇最大條目的列,就像這樣。
Select name_of_column(max(col1,col2,col3))
。
我知道我可以通過它在information_schema.COLUMNS表中的順序位置來請求列的名稱,但是如何獲得表中數據庫條目的序號位置?
是否有可能獲取數據庫條目所屬列的名稱?獲取mysql條目的列
也許我有三列與列名col1,col2和col3。現在我想爲每列選擇最大條目的列,就像這樣。
Select name_of_column(max(col1,col2,col3))
。
我知道我可以通過它在information_schema.COLUMNS表中的順序位置來請求列的名稱,但是如何獲得表中數據庫條目的序號位置?
如果你想實現它在純SQL,您可以使用CASE語句和一個額外的變量:
SELECT @m := GREATEST(col1, col2),
CASE @m
WHEN col1 THEN 'col1'
WHEN col2 THEN 'col2'
END
FROM my_table
這符合我的需求 – 2010-05-03 13:56:58
這將顯示從表中
SHOW COLUMNS FROM 'table';
然後你必須通過一個腳本語言的結果迭代列。
感謝這一點,但沒有任何其他方式來獲取不使用腳本語言條目的列名? – 2010-05-03 12:21:27
你可以這樣做:
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
但是,如果最大值出現在多列中?
很好的論據,但在我的特殊情況下,它是不太可能發生的 – 2010-05-03 13:48:22
什麼是「入口」?一列?一列的價值?行ID? – lexu 2010-05-03 13:05:00
沒有在表中的條目,也許在第三行第1列條目 – 2010-05-03 13:51:52