我有一个带有这些值的Users表(为示例而去掉了):
我基本上想要一个自己按区域返回最高stat的查询。如果你拥有该国最高的力量(67),你所在城市的最高耐力(59),而不是任何地方的最高智力,我想要的第2行结果:
('力量',67,'国家','美国')
('耐力',59,'城市','雷德蒙德')
请注意,如果您拥有该国家中最高的实力,您也将拥有州/省,县和城市中最高的实力(但我希望那些不会在结果中返回的实力)。我可以使用多个SELECT查询来完成所有这些,但是,我想知道如何在单个查询中实现这一点以提高效率(或者,如果这是一个好主意?)。我想象逻辑会像(伪代码):
(SELECT FROM Users ORDERBY Strength WHERE Country ='MyCountry'LIMIT 1)IF Name!='Me'(SELECT FROM Users ORDERBY Strength WHERE StateProvince ='MyState'LIMIT 1)......等等
此外,上述内容还需要与Endurance and Intelligence合作。谢谢!
答案 0 :(得分:0)
点击此链接MySQL control-flow-functions
SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;