Java 如何在多个地方的查询中使用参数?
我使用javaJava 如何在多个地方的查询中使用参数?,java,mysql,Java,Mysql,我使用javaPreparedStatement在查询开始时间和结束时间中设置两个参数。但在我的查询中,我需要在两个地方使用它。我可以做一些查询变量或者缩短我的请求吗 SELECT * FROM publicutilities.orders WHERE (works_begin between '2019-05-26 09:00:00' and '2019-05-26 14:00:00' OR works_end between '2019-05-26 09:00:00' and '2019-0
PreparedStatement
在查询开始时间和结束时间中设置两个参数。但在我的查询中,我需要在两个地方使用它。我可以做一些查询变量或者缩短我的请求吗
SELECT * FROM publicutilities.orders
WHERE (works_begin between '2019-05-26 09:00:00' and '2019-05-26 14:00:00' OR works_end between '2019-05-26 09:00:00' and '2019-05-26 14:00:00')
大概是这样的:
SELECT * FROM publicutilities.orders
VARIABLE begin_time = ?
VARIABLE end_time = ?
WHERE (works_begin between begin_time and end_time OR works_end between begin_time and end_time)
遵循本教程
我认为您的SQL查询应该如下所示:
SET @begin_time := '2013-01-17 00:00:00';
SET @end_time := '2013-01-17 00:00:00';
SELECT * FROM publicutilities.orders
WHERE (works_begin between @begin_time and @end_time OR works_end between @begin_time and @end_time)
我在我的mysql服务器上试过了,效果很好。希望它也适用于您。使用
SET@var\u name:=
在SQL中标识别名
重写你的代码
SET @begin_ts := '2019-05-26 09:00:00'
SET @end_ts := '2019-05-26 14:00:00'
ELECT * FROM publicutilities.orders
WHERE (works_begin between @ begin_ts and @ end_ts OR works_end between @begin_ts and @end_ts)