簡體   English   中英

事件發生MySQL錯誤1064

[英]MySQL error 1064 on event

這是我要在事件上執行的查詢,但它返回null,並且每周不向表中插入任何行。

insert into weekly (winddir,windspeedmph,windgustmph,windgustdir,windspdmph_avg2m,winddir_avg2m,windgustmph_10m,windgustdir_10m,humidity,tempf,rainin,dailyrainin,pressure,batt_lvl,light_lvl)
VALUE (
(select AVG(winddir) from daily WHERE `timeStamp` BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) AND NOW()),
(select AVG(windspeedmph) from daily WHERE `timeStamp` BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) AND NOW()),
(select AVG(windgustmph) from daily WHERE `timeStamp` BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) AND NOW()),
(select AVG(windgustdir) from daily WHERE `timeStamp` BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) AND NOW()),
(select AVG(windspdmph_avg2m) from daily WHERE `timeStamp` BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) AND NOW()),
(select AVG(winddir_avg2m) from daily WHERE `timeStamp` BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) AND NOW()),
(select AVG(windgustmph_10m) from daily WHERE `timeStamp` BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) AND NOW()),
(select AVG(windgustdir_10m) from daily WHERE `timeStamp` BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) AND NOW()),
(select AVG(humidity) from daily WHERE `timeStamp` BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) AND NOW()),
(select AVG(tempf) from daily WHERE `timeStamp` BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) AND NOW()),
(select AVG(rainin) from daily WHERE `timeStamp` BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) AND NOW()),
(select AVG(dailyrainin) from daily WHERE `timeStamp` BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) AND NOW()),
(select AVG(pressure) from daily WHERE `timeStamp` BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) AND NOW()),
(select AVG(batt_lvl) from daily WHERE `timeStamp` BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) AND NOW()),
(select AVG(light_lvl) from daily WHERE `timeStamp` BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) AND NOW())
)

當我嘗試這種方式時:

insert into weekly (winddir,windspeedmph,windgustmph,windgustdir,windspdmph_avg2m,winddir_avg2m,windgustmph_10m,windgustdir_10m,humidity,tempf,rainin,dailyrainin,pressure,batt_lvl,light_lvl)
VALUE (
(select AVG(winddir) from daily ),
(select AVG(windspeedmph) from daily ),
(select AVG(windgustmph) from daily ),
(select AVG(windgustdir) from daily ),
(select AVG(windspdmph_avg2m) from daily ),
(select AVG(winddir_avg2m) from daily ),
(select AVG(windgustmph_10m) from daily ),
(select AVG(windgustdir_10m) from daily ),
(select AVG(humidity) from daily ),
(select AVG(tempf) from daily ),
(select AVG(rainin) from daily ),
(select AVG(dailyrainin) from daily ),
(select AVG(pressure) from daily ),
(select AVG(batt_lvl) from daily ),
(select AVG(light_lvl) from daily )
)
SELECT * FROM daily WHERE `timeStamp` BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) AND NOW()

我收到錯誤1064。

有人可以幫我嗎

首先,您可以使用insert into . . .大大簡化查詢insert into . . . insert into . . . 一個聚合查詢:

Insert into weekly (winddir, windspeedmph, windgustmph, windgustdir, windspdmph_avg2m,
                    winddir_avg2m, windgustmph_10m, windgustdir_10m, humidity,
                    tempf, rainin, dailyrainin, pressure, batt_lvl, light_lvl)
    select AVG(winddir), AVG(windspeedmph), AVG(windgustmph), AVG(windgustdir), AVG(windspdmph_avg2m),
           AVG(winddir_avg2m), AVG(windgustmph_10m), AVG(windgustdir_10m), AVG(humidity),
           AVG(tempf), AVG(rainin), AVG(dailyrainin), AVG(pressure), AVG(batt_lvl), AVG(light_lvl) 
    from daily
    where `timeStamp` BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY) and NOW()

我的猜測是您過去一天沒有數據。 也許您應該將1 Day更改為7 Day (根據表的名稱)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM