MSQL IF语句错误

时间:2016-01-29 06:34:34

标签: mysql if-statement

我正在尝试从基于MySQL的数据库的表中检索多个参数的数据。

我想检查日期的计数,如果计数等于24,我需要找到多个参数的最大值和最小值并检索数据。我使用了下面显示的查询,但它给出了语法错误。

"SET @cnt=(select count(DATE) from DATA where ID=1111 and     DATA_DATE>='2016-01-24 00:00:00' and DATA_DATE<'2016-01-25 00:00:00')    \
       IF (@cnt=24) then \
            select MIN(parameter1),max(parameter2) from STATION_DATA where STATION_ID=6216 and DATA_DATE>='2016-01-24 00:00:00' and DATA_DATE<'2016-01-25 00:00:00' \
     END IF

但它给出了语法错误。 我是MySQL的初学者,任何帮助都将受到高度赞赏。

提前致谢。

2 个答案:

答案 0 :(得分:0)

以下应该可以正常工作,只需在where子句中使用变量@cnt,而不是使用存储程序的IF语句。

SET @cnt=(select count(DATE) from DATA where ID=1111 and DATA_DATE>='2016-01-24 00:00:00' and DATA_DATE<'2016-01-25 00:00:00'); select MIN(parameter1),max(parameter2) from STATION_DATA where @cnt=24 and STATION_ID=6216 and DATA_DATE>='2016-01-24 00:00:00' and DATA_DATE<'2016-01-25 00:00:00';

答案 1 :(得分:0)

IF语句在查询中有所不同。请使用以下查询:

SET @cnt=(SELECT COUNT(DATE) FROM DATA WHERE ID = 1111 
       AND DATA_DATE >= '2016-01-24 00:00:00' 
       AND DATA_DATE < '2016-01-25 00:00:00');

SELECT IF(@cnt = 24, MIN(parameter1), '') AS  parameter1,
       IF(@cnt = 24, MAX(parameter2), '') AS  parameter2 
       FROM STATION_DATA WHERE STATION_ID = 6216 
       AND DATA_DATE >= '2016-01-24 00:00:00' 
       AND DATA_DATE <  '2016-01-25 00:00:00';