mysql - 将 2 个月份和年份的列与不同的条件相结合

标签 mysql

我现在有点麻烦。

我正在使用一个包含列的表格。

我需要返回(例如)所有列:

  • 月份 为 3 或更高且年份 为 2014 年
  • 并且
  • 月份 为 2 或更低且年份 为 2015

所以基本上是从 2014 年 3 月到 2015 年 2 月的所有内容

我尝试过:

SELECT * FROM table
WHERE student_id = 5
AND ((month >= 3 AND year >= 2014)
AND (month <= 2 AND year <= 2015))

student_id 不唯一

尝试在末尾使用 AND 并使用 OR OR 返回所有内容,AND 不返回任何内容,这完全有意义,因为它返回的正是我所要求的内容。我也不确定 JOIN 将如何帮助第一个条件返回这些数字之后的所有内容,而第一个条件返回这些日期之前的所有内容。

一种选择是创建一个带有月份和年份时间戳的新列并使用它。

但是有没有一种方法可以通过当前的结构仅使用 mysql 来实现这一点?

最佳答案

因此,如果您确实想在以下位置记录:

 month is 3 or higher AND year is 2014

并记录其中:

 month is 2 or lower AND year is 2015

那么你想要

SELECT * FROM table
WHERE 
  student_id = $id
  AND ((month >= 3 AND year = 2014)
       OR (month <= 2 AND year = 2015))

关于mysql - 将 2 个月份和年份的列与不同的条件相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28589108/

相关文章:

mysql - 使用 php 循环更新 MySQL 表

php - mysql插入故障

php - 尝试为每个照片库检索一张随机照片作为封面照片

mysql : delete where not in : what is the syntax?

javascript - 如何将从数据库中提取的数字传递到 javascript 数据部分?

php - 根据插入请求自动从 SQL 表中删除旧记录

mysql - MySQL 中可以避免使用内连接吗?

mysql - 如何合并两个具有主键的相同表?

php - PHP 中使用 IN 语句进行 MySQL 查询

php - Laravel (5.1) 查询构建器没有正确地将绑定(bind)添加到原始选择语句