【问题标题】:How to implement a WHERE clause on a MySQL query如何在 MySQL 查询中实现 WHERE 子句
【发布时间】:2016-11-29 12:53:16
【问题描述】:

我有这个数据库表“MyTable”包含如下所示的数据,我想使用 where 子句从中获取数据,这样我就可以在“MyView2.

MyTable

StudentID   courseID    scores  term    Academic year
A001         PHY          70    1         2016
A004         MATH         60    2         2014
A001         CHEM         80    1         2016
A002         MATH         72    1         2016
A002         CHEM         61    1         2016
A004         PHY          49    2         2014
A001         MATH         89    1         2016
A002         PHY          65    1         2016
A004         CHEM         71    2         2014

到目前为止,我已经使用这段代码将这些结果带到“MyView”上

 <?php
     ……………………………………
  SELECT stid, MAX( CASE WHEN courseid = 'MATH' THEN marks END) MATH ,MAX(    CASE WHEN courseid 'CHEM' THEN marks END) CHEM,MAX( CASE WHEN courseid = 'PHY' THEN marks END) PHY FROM MyTable   GROUP BY stid ORDER BY 1"
         …………………………
  ?>

我的视图

   StudentID    MATH    CHEM    PHY
    A001         70       80    89
    A002         72       61    65
    A004         60       71    49

我应该在哪里以及如何实施“where 子句”以根据 2016 学年第 1 学期将结果显示在“MyView2”表中

我的视图2

   StudentID    MATH    CHEM    PHY
    A001         70       80    89
    A002         72       61    65

【问题讨论】:

  • SELECT stid , MAX( CASE WHEN courseid = 'MATH' THEN 标记 END) MATH , MAX( CASE WHEN courseid 'CHEM' THEN 标记 END) CHEM , MAX( CASE WHEN courseid = 'PHY' THEN标记 END) PHY FROM MyTable GROUP BY stid WHERE stid = 'A004' ORDER BY 1
  • 实际上不是单个数据,是一组数据,因此我想根据学期和学年获取它,所以我无法通过 studentiD @scais Edge 获取它
  • 就我个人而言,如果你以后只是要在 PHP 中处理结果,我认为以这种方式执行查询是愚蠢的
  • 假设我想获取第一学期的所有数据,而学年是 2016 年,我该怎么做@scaisEgge
  • 英语不太好,你能说出你的意思吗@Strawberry

标签: mysql where-clause having-clause


【解决方案1】:

如果您使用以下查询,并在 PHP 或 JavaScript 中处理所有进一步的处理,将会更加简单和灵活...

SELECT stid
     , courseid 
     , marks 
     FROM MyTable
 ORDER BY stid, courseid

【讨论】:

  • 感谢您的回复,它会在没有 where 的情况下工作,因为我想根据年份和学期(2016 学年和学期为 1)从他们中获取特定数据@Strawberry
  • 您可以根据需要添加 WHERE。如果数据集不是太大,那么您可以使用 PHP 或 JavaScript 进行过滤
  • 好的,让我试试看。。谢谢你的时间@Strawberry
猜你喜欢
  • 1970-01-01
  • 2020-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2018-11-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多