MySQL-带条件的操作
我尝试使用三个类似的if条件执行求和运算,格式如下: 第一个: 如果TIME_TO_SECTIMEDIFFIFTIME='0000-00-00 00:00:00',sysdate、TIME、TIME2>高或TIME为NULL且TIME3!='0000-00-00 00:00:00'和日期格式时间2,'%Y-%m-%d%H:%i'MySQL-带条件的操作,mysql,date,time,sum,Mysql,Date,Time,Sum,我尝试使用三个类似的if条件执行求和运算,格式如下: 第一个: 如果TIME_TO_SECTIMEDIFFIFTIME='0000-00-00 00:00:00',sysdate、TIME、TIME2>高或TIME为NULL且TIME3!='0000-00-00 00:00:00'和日期格式时间2,'%Y-%m-%d%H:%i'值和TIME3!='0000-00-00 00:00:00'和日期格式时间2,'%Y-%m-%d%H:%i'0和TIME3!='0000-00-00 00:00:00'和
SELECT VALUE1 ,
COUNT( * ) TOTAL
from (
SELECT (
if((TIME_TO_SEC(TIMEDIFF(IF(TIME = '0000-00-00 00:00:00',sysdate() , TIME ), TIME2)) > high OR TIME IS NULL) AND TIME3 != '0000-00-00 00:00:00' AND DATE_FORMAT(TIME2, '%Y-%m-%d %H:%i') < DATE_FORMAT(now(), '%Y-%m-%d %H:%i')) +
if(TIME_TO_SEC(TIMEDIFF(IF(TIME = '0000-00-00 00:00:00',sysdate() , TIME ), TIME2)) > value AND TIME3 != '0000-00-00 00:00:00' AND DATE_FORMAT(TIME2, '%Y-%m-%d %H:%i') < DATE_FORMAT(now(), '%Y-%m-%d %H:%i')) +
if(TIME_TO_SEC(TIMEDIFF(IF(TIME = '0000-00-00 00:00:00',sysdate() , TIME ), TIME2)) >0 AND TIME3 != '0000-00-00 00:00:00' AND DATE_FORMAT(TIME2, '%Y-%m-%d %H:%i') < DATE_FORMAT(now(), '%Y-%m-%d %H:%i'))) as 'ok',
if((TIME_TO_SEC(TIMEDIFF(IF(TIME = '0000-00-00 00:00:00',sysdate() , TIME ), TIME2)) > high OR TIME IS NULL) AND DATE_FORMAT(TIME2, '%Y-%m-%d %H:%i') < DATE_FORMAT(now(), '%Y-%m-%d %H:%i'),4,
if(TIME_TO_SEC(TIMEDIFF(IF(TIME = '0000-00-00 00:00:00',sysdate() , TIME ), TIME2)) > value AND DATE_FORMAT(TIME2, '%Y-%m-%d %H:%i') < DATE_FORMAT(now(), '%Y-%m-%d %H:%i'),3,
if(TIME_TO_SEC(TIMEDIFF(IF(TIME = '0000-00-00 00:00:00',sysdate() , TIME ), TIME2)) >0 AND DATE_FORMAT(TIME2, '%Y-%m-%d %H:%i') < DATE_FORMAT(now(), '%Y-%m-%d %H:%i'),2,
if(TIME >'0000-00-00 00:00:00', 1,0) ))) VALUE1
FROM table1 , table2 left outer join table3 on( value2 = value3 ) where id_param='col1' and col2 = DATE_FORMAT(if(CURTIME()>='00:00:00' and CURTIME() < '08:00:00',sysdate() - INTERVAL 1 DAY, sysdate()), '%Y-%m-%d') ) as datos GROUP BY VALUE1
这将返回一个2列x3rows表,其中包含“ok”、“4”、“3”和“2”的值。您可以这样做
SELECT (if_cond1 + if_cond2 + if_cond3) as `x` FROM...
根据上述IFs扩展if条件1、2、3
如果您想简化SQL一旦扩展得非常大时的外观,您可以使用。您可以这样做
SELECT (if_cond1 + if_cond2 + if_cond3) as `x` FROM...
根据上述IFs扩展if条件1、2、3
如果您想简化SQL一旦扩展得很大时的外观,可以使用。不幸的是,它似乎不起作用。也许我做错了什么。如果没有db结构+示例数据,那么在一秒钟内将整个查询添加到主帖子中是没有帮助的。无论如何,试着递增,如果一次增加一个,看看哪里没有增加。假设没有语法错误。不幸的是,它似乎不起作用。也许我做错了什么。如果没有db结构+示例数据,那么在一秒钟内将整个查询添加到主帖子中是没有帮助的。无论如何,试着递增,如果一次增加一个,看看哪里没有增加。假设没有语法错误。