我试图从基于“偏好”的表中获取值。
我有一个表“t1”,包括两列“id”和“alphabet”
示例数据
1 A
1 B
2 A
3 A
3 B
这意味着每个id都有默认值“A”,有些则有“B”。
现在我想根据“B”的偏好获得“id”的值。因此,如果ID同时具有A和B,我想要B行。如果未找到B行,则应返回默认值A.
答案 0 :(得分:2)
这可能会稍微偏离,因为mysql方言总是抛弃我。由于B按字母顺序排在A之后,如果您对ID进行分组然后选择最大值,它将为您提供它们存在的所有B行,否则您将获得A行。
SELECT
ID,
MAX(alphabet) AS preference
FROM
t1
GROUP BY
ID
现在,如果您的数据比您指定的更复杂,您将需要检查MAX逻辑是否仍然适用。