我正在尝试做类似的事情:
IF EXISTS(SELECT * FROM weatherbyday WHERE DATE(DateTime) = CURDATE())
THEN update weatherbyday
SET
TempMin='[th0temp-dmin]',
TempMax='[th0temp-dmax]'
WHERE DATE(DateTime) = CURDATE()
ELSE INSERT INTO weatherbyday (DateTime, TempMin, TempMax ) VALUES ('[YYYY]-[MM]-[DD] [hh]:[mm]:[ss]', '[th0temp-dmin]','[th0temp-dmax]' )
但是IF不能以这种语法使用。
对于以重复键为条件的此类问题,有很多答案,但是我想使用日期作为条件,但不能将其作为键。
谁能提供一个优雅的答案?
谢谢
大卫
最佳答案
您所显示的是MSSQL
中的语法。这是MySQL
的:
IF ((SELECT COUNT(*) FROM weatherbyday WHERE DATE(DateTime) = CURDATE()) > 0) THEN
BEGIN
UPDATE weatherbyday
SET TempMin = '[th0temp-dmin]',
TempMax = '[th0temp-dmax]'
WHERE DATE(DateTime) = CURDATE();
END;
ELSE
BEGIN
INSERT INTO weatherbyday (DateTime, TempMin, TempMax)
VALUES ('[YYYY]-[MM]-[DD] [hh]:[mm]:[ss]', '[th0temp-dmin]', '[th0temp-dmax]')
END;
END IF;
MySQL IF Syntax
关于mysql - MySQL基于日期的条件插入或更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48373456/