【问题标题】:MySQL Multiple query with a bit of logic带有一点逻辑的 MySQL 多查询
【发布时间】:2012-02-03 15:15:11
【问题描述】:

我有一个包含这些值的用户表(示例中已删除):

  • 姓名
  • 城市
  • 州省
  • 国家
  • 大陆
  • 实力
  • 耐力
  • 智能

我基本上想要一个按地区为您自己返回最高统计数据的查询。如果您在该国拥有最高的力量 (67),在您的城市拥有最高的耐力 (59),而不是任何地方最高的智力,我想要一个 2 行结果:

('Strength', 67, 'Country', 'United States')

('耐力', 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) ... 以此类推

此外,以上内容还需要与耐力和智力一起使用。谢谢!

【问题讨论】:

    标签: mysql multiple-select-query


    【解决方案1】:

    查看此链接MySQL control-flow-functions

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

    【讨论】:

    • 这有助于我走上正确的道路,但我在这方面仍然是一个完全的新手,并且很难理解如何形成基本上说“当我们有 0 行时,或者这个名字不是“我的名字””
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    相关资源
    最近更新 更多