Java 如何在多个地方的查询中使用参数?

Java 如何在多个地方的查询中使用参数?,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

我使用java
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)