我想从表中查询具有最新 dtRequestToLog 的行,以获取列 strUniqueID。将 strUniqueID 与 IF Statement 进行比较,如果它等于数字 X,则在同一行中更新 blnAcceptedToLog = 1
所以要使用我使用的最新 dtRequestToLog 获取行:
select strUniqueID from tblmainmonitor t where dtRequestToLog >= (now() - interval 30 minute ) AND idxBedrijf = 1 order by dtRequestToLog asc limit 1
这很好用。我有以下 if 语句也适用:
DELIMITER $
CREATE PROCEDURE pr()
BEGIN
IF 3 = 3 THEN
SELECT 'TRUE';
ELSE
SELECT 'FALSE';
END IF;
END $
DELIMITER ;
CALL pr;
所以我想使用第一个查询而不是 3 = 3,它的返回值将它与数字 x 进行比较,我从代码动态地放入查询;但是当我将查询放在“IF”之后时,它不起作用,也不用大括号。
那么如果该陈述为真;我想使用相同的发现行将 blnAcceptedLog 更新为 1;
我该怎么做?
或者我应该使用 UPDATE 查询 where ((subquery).strUniqueID == 1)?其中子查询是顶部描述的第一个查询。我该怎么写?
编辑:tblmainmonitor 的一些示例数据
idxMain|idxBedrijf|strUniqueId|dtLastLog |dtRequestToLog |blnAcceptedToLog
1 1 1 2021-07-08 10:00:00 2021-07-08 08:00:00 1
2 1 1 2021-07-08 14:50:00 0
3 1 2 2021-07-08 14:51:00 0