Mysql 如何从表中获取记录列表,其中使用DATEDIFF函数可以发现select查询本身的两个变量之间的时间差?

Mysql 如何从表中获取记录列表,其中使用DATEDIFF函数可以发现select查询本身的两个变量之间的时间差?,mysql,sql,plsql,Mysql,Sql,Plsql,这里我想使用两个变量(@startdate和@enddate),它们由来自所用select查询的多个条目填充 对于最后一行,我希望select查询通过使用这两个变量和多个值返回DATEDIFF函数大于或等于10分钟的记录列表 另外,我正在使用SquirrelSQL客户端(2.3) 问题是我不知道是否可以对变量使用多个值 另外,请建议或提供上述问题的任何解决方案,以便查询最终能够正常工作。您不能以这种方式使用变量 现在很难确定是否没有看到表架构和示例数据,但您应该能够使用JOIN对这样的查询执行所

这里我想使用两个变量(@startdate和@enddate),它们由来自所用select查询的多个条目填充

对于最后一行,我希望select查询通过使用这两个变量和多个值返回DATEDIFF函数大于或等于10分钟的记录列表

另外,我正在使用SquirrelSQL客户端(2.3)

问题是我不知道是否可以对变量使用多个值


另外,请建议或提供上述问题的任何解决方案,以便查询最终能够正常工作。

您不能以这种方式使用变量

现在很难确定是否没有看到表架构和示例数据,但您应该能够使用
JOIN
对这样的查询执行所需操作

SET @startdate = (select LOG_TIME from log.time where sender='Japan' and receiver ='USA' and code=158);

SET @enddate = (select LOG_TIME  from log.time where sender='Japan' and receiver ='USA' and code=189);

select * from log.time where  DATEDIFF(minute, @startdate, @enddate) >= 10;
如果要提供表模式、示例数据和所需的输出,那么就可以测试查询

SELECT l1.* 
  FROM log.time l1 JOIN log.time l2
    ON l1.sender = l2.sender
   AND l1.receiver = l2.receiver
   AND l1.code = 158
   AND l2.code = 189
 WHERE l1.sender = 'Japan'
   AND l1.receiver = 'USA'
   AND DATEDIFF(minute, l1.log_time, l2.log_time) >= 10