mysql - 下面的 mysql 查询的改进

标签 mysql

SELECT * FROM ***** 
WHERE ((first_appeared_on BETWEEN DATE_SUB( '2015-07-28' , INTERVAL 1 DAY ) AND '2015-07-28') 
      or (last_appeared_on BETWEEN DATE_SUB( '2015-07-28' , INTERVAL 1 DAY ) AND '2015-07-28'))

在上面的查询中,我不想一次又一次地输入日期 (2015-07-28) 我可以使用变量并为该变量分配一个值吗

日期 = '2015-07-28';

SELECT * FROM ***** 
WHERE ((first_appeared_on BETWEEN DATE_SUB(day , INTERVAL 1 DAY ) AND day) 
      or (last_appeared_on BETWEEN DATE_SUB( day , INTERVAL 1 DAY ) AND day))

最佳答案

这可以在 MySQL 中使用 user-defined variable 来完成。 :

SET @day = '2015-07-28';

SELECT * FROM ***** 
WHERE ((first_appeared_on BETWEEN DATE_SUB( @day , INTERVAL 1 DAY ) AND @day) 
  or (last_appeared_on BETWEEN DATE_SUB( @day , INTERVAL 1 DAY ) AND @day));

关于mysql - 下面的 mysql 查询的改进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31853352/

相关文章:

php - SQL AVG 函数不考虑空单元格

mysql - ASP、Mysql & 大小写敏感度突然坏了

mySQL INSERT 带条件查询

php - curdate() 查询在 laravel 5.2 中不起作用

mysql - 数据库设计问题 - 不同类别的多个分数

mysql - 统计单行中 'NA'的个数-MySQL

mysql - 将react-native连接到firebase和mysql

php - MYSQL查询每小时

c# - 将 MySQL 过程调用存储在 .sql 脚本文件中并执行

php - 如何检查登录的用户 ID 并在 MySQL 查询中首先返回该行?