2013-01-24 35 views
-7

我試圖從基於「首選項」的表中獲取值。如何根據「首選項」從表中獲取值

我有一個表 「T1」 包括兩列 「id」 和 「字母」

的樣本數據

1 A 
1 B 
2 A 
3 A 
3 B 

這意味着每個ID的缺省值是 「A」,部分「B 「)。

現在我想根據「B」的偏好得到「id」的值。因此,如果一個ID既有A又有B,我想要B行。如果沒有找到B行,那麼應該返回默認的A.

+0

是的,在一個列中只有一個值.... A或B –

+0

所以你想要所有的行,對吧?你只是想按字母排序嗎?如果是這種情況,請使用ORDER BY字母表。如果我誤解了,我不明白你的意思是「得到所有的字母是B,沒有B的我就能得到A的價值」。請進一步解釋 – Melanie

+2

您可以發佈您的表格結構,樣本數據和期望的結果嗎? – Taryn

回答

2

這可能會略微偏離,因爲mysql方言總是拋出我。由於B按照字母順序排列在A之後,所以如果你在ID上進行分組,然後選擇最大值,它會給你所有B行存在的地方,否則你會得到A行。

SELECT 
    ID, 
    MAX(alphabet) AS preference 
FROM 
    t1 
GROUP BY 
    ID 

現在,如果你的數據比你指出的更復雜,你將需要檢查MAX邏輯是否仍然適用。

+0

hiiii billinkc ....首先感謝您理解我的問題並對其進行編輯..第二感謝您解決它.....真正的作品我想要什麼.....非常感謝billinkc –

+0

歡迎來到StackOverflow 。如果您發現問題或答案對網站有幫助,請點擊旁邊的向上箭頭。如果回答了您的問題,請點擊答案旁邊的複選標記。 – billinkc

+0

嘿billinkc ...也有一個概率。如果還有一列,那麼它沒有獲得價值acc。到「字母表」。 Plz告訴我怎麼可能 –

相關問題