我正在尝试做类似的事情:

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/

10-11 08:29