MySQL多个查询,带有一点逻辑

时间:2012-02-03 04:50:36

标签: mysql multiple-select-query

我有一个带有这些值的Users表(为示例而去掉了):

  • 名称
  • StateProvince
  • 国家
  • 强度
  • 耐力
  • 智能

我基本上想要一个自己按区域返回最高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合作。谢谢!

1 个答案:

答案 0 :(得分:0)

点击此链接MySQL control-flow-functions

SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;