php - 更改 MySQL WHERE 参数

标签 php mysql

我有这些 where 参数,但它没有返回所需的内容:

WHERE `Profiles`.`Departure1` >= '2012-04-01' 
OR `Profiles`.`Departure2` >= '2012-04-01' 
OR `Profiles`.`Departure3` >= '2012-04-01' 
AND `Profiles`.`Departure1` <= '2012-04-04' 
OR `Profiles`.`Departure2` <= '2012-04-04' 
OR `Profiles`.`Departure3` <= '2012-04-04'

有三个出发日期字段,我试图只返回日期介于两个日期之间的条目。我在这里拥有的是归还一切。有没有更好的方法可以真正起作用?

最佳答案

使用 mySQL 的 BETWEEN 运算符:

WHERE 
    `Profiles`.`Departure1` BETWEEN CAST('2012-04-01' AS Date) AND CAST('2012-04-04' AS Date) OR 
    `Profiles`.`Departure2` BETWEEN CAST('2012-04-01' AS Date) AND CAST('2012-04-04' AS Date) OR 
    `Profiles`.`Departure3` BETWEEN CAST('2012-04-01' AS Date) AND CAST('2012-04-04' AS Date)

查看文档:

注意:如果这是您要经常做的事情,请考虑将您的日期存储为 UNIX 时间戳,使用 BIGINT 字段类型而不是 日期。这样,您就不必过多地使用 CAST 来进行 BETWEEN 比较。您可以使用 FROM_UNIXTIME ( docs ) 在离开数据库的路上进行格式化,而不是每次比较时都在转换。见:

关于php - 更改 MySQL WHERE 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9996579/

相关文章:

mysql - RT4 mysql字符编码问题

mysql - 如何使用 Eloquent 获取 N 个最新的数据库条目?

mysql - 如何将www目录设置为公开?瓦姆普

php - mysql 组到列

php - yii2:一对多关系的索引页(带搜索),显示所有字段

php - 如何从 php 文件中读取所有数值?

php - IFTTT : Trying to run a php script using Maker webhooks

php - mysql在html中的特殊字符输出

php - 如何在配置文件中隐藏密码

mysql - 无论如何要限制 MySQL 查询执行时间?