首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL For/While循环

MYSQL For/While循环
EN

Stack Overflow用户
提问于 2016-07-11 22:01:50
回答 1查看 71关注 0票数 0

在MYSQL中可以执行For或While循环吗?

我得到了以下代码摘要,但是完整的代码会用到home_id_15、home_score_15、away_id_15和away_score_15:

代码语言:javascript
复制
$query3 = '
SELECT match_date, fixture_id, COUNT(a.home) AS home, SUM(a.points) AS points FROM
    (  
      SELECT match_date, fixture_id, home_id_1 AS home, home_score_1 AS points FROM scores
      WHERE home_id_1 =' .intval($_REQUEST['ID']).'  
      UNION ALL  
      SELECT match_date, fixture_id, away_id_1 AS home, away_score_1 AS points 
      FROM scores
      WHERE away_id_1 =' .intval($_REQUEST['ID']).'  
      UNION ALL  
      SELECT match_date, fixture_id, home_id_2 AS home, home_score_2 AS points 
      FROM scores
      WHERE home_id_2 =' .intval($_REQUEST['ID']).'  
      UNION ALL  
      SELECT match_date, fixture_id, away_id_2 AS home, away_score_2 AS points 
      FROM scores
      WHERE away_id_2 =' .intval($_REQUEST['ID']).'  
      UNION ALL) a  
     GROUP BY match_date'

第一和第二子选择基本上被重复,直到它们达到15。

这似乎有点长,我想知道是否可以在MYSQL中使用循环来输出

代码语言:javascript
复制
home_id_1, home_score_1, away_id_1, away_score_1 [up to] home_id_15, home_score_15, away_id_15, away_score_15

分别?

谢谢丹。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-11 22:05:14

看起来您可能需要对数据库进行更多的规范化。假设你每行得了6分。不要让每个分数都成为一列,而是单独创建一个名为“分数”的表,或者类似于外键列和得分列的表。然后用这个分数表加入这个表。

示例:

  • 表:小组
代码语言:javascript
复制
- team\_id
- name

  • 表:分数
代码语言:javascript
复制
- team\_id
- score

代码语言:javascript
复制
SELECT t.*, s.score 
FROM team t
join scores s 
on t.team_id=s.team_id;

Todo:将matches的概念添加到您的模式和Join

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38316905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档