Mysql SQL查询中缺少Where子句

Mysql SQL查询中缺少Where子句,mysql,Mysql,我正在从客户端向MySQL数据库发送SQL查询。 当我在MySQL中运行查询时,结果是正确的 当从客户端发送时,查询结果是错误的。 缺少最后一个WHERE子句 原始查询如下所示: SELECT SUM(Second_In_State) From (SELECT Time_Stamp, State, TIMESTAMPDIFF(SECOND, LAG(Time_Stamp) OVER(ORDER BY Time_Stamp), Time_Stamp) AS Secon

我正在从客户端向MySQL数据库发送SQL查询。 当我在MySQL中运行查询时,结果是正确的

当从客户端发送时,查询结果是错误的。 缺少最后一个WHERE子句

原始查询如下所示:

SELECT SUM(Second_In_State) From 
(SELECT 
    Time_Stamp, 
    State,
    TIMESTAMPDIFF(SECOND, LAG(Time_Stamp) OVER(ORDER BY Time_Stamp), Time_Stamp)
AS Second_In_State
FROM db.xyz_1_state
ORDER BY Time_Stamp) AS T
Where State = 1;
SELECT SUM(Second_In_State) From 
(SELECT 
    Time_Stamp, 
    State,
    TIMESTAMPDIFF(SECOND, LAG(Time_Stamp) OVER(ORDER BY Time_Stamp), Time_Stamp)
AS Second_In_State
FROM db.xyz_1_state
ORDER BY Time_Stamp) AS T
结果是状态为1的秒数(所需结果)

在MySQL查询日志中,查询如下所示:

SELECT SUM(Second_In_State) From 
(SELECT 
    Time_Stamp, 
    State,
    TIMESTAMPDIFF(SECOND, LAG(Time_Stamp) OVER(ORDER BY Time_Stamp), Time_Stamp)
AS Second_In_State
FROM db.xyz_1_state
ORDER BY Time_Stamp) AS T
Where State = 1;
SELECT SUM(Second_In_State) From 
(SELECT 
    Time_Stamp, 
    State,
    TIMESTAMPDIFF(SECOND, LAG(Time_Stamp) OVER(ORDER BY Time_Stamp), Time_Stamp)
AS Second_In_State
FROM db.xyz_1_state
ORDER BY Time_Stamp) AS T
结果是所有状态下的总秒数。(错误结果)


最后一行丢失的原因有什么建议吗?

谢谢您的评论

我发现客户端的行数有限。因此,保存时,最后一行将被删除

因此,将查询转换为一行就解决了问题


谢谢。

假设您的日志输出是可信的,那么查看缺少
WHERE
子句的查询版本的唯一方法就是查看您的代码是否正在执行相同的查询。您的问题是什么?你能提供一些样本数据和期望的结果吗?我已经试着更好地解释了这个问题。我的问题是,当从客户端发送查询时,为什么最后一行会丢失?请尝试将最后一行
Where
用大写(
Where
)表示,很可能这就是问题所在。我不希望是这样,但根据您的设置和环境,这很可能是原因。“我正在从客户端发送SQL查询”-什么客户端(mysql命令行?)到mysql'-where(同一服务器,远程服务器)