mysql-在CONCAT的子查询中使用if
我试图编写一个查询来更正表中DATETIME字段中的错误,但是我的子查询可以返回NULL作为transactiondetails,并且CreateDate字段需要有一个有效值 我当前的查询是: 更新TransactionHeaders H SET CreateDate= 海螺 日期从TransactionDetails中选择CreateDate,其中TransactionUID=H.UID按TransactionUID分组, ' ', TIMECreateDate 其中UID>0; 我想用 从TransactionDetails中选择CreateDate,其中TransactionUID=H.UID按TransactionUID分组 如果不为NULL,则为DATECreateDate 我一直在尝试使用IF来实现这个目的,但是我在写一些有用的东西时遇到了问题mysql-在CONCAT的子查询中使用if,mysql,Mysql,我试图编写一个查询来更正表中DATETIME字段中的错误,但是我的子查询可以返回NULL作为transactiondetails,并且CreateDate字段需要有一个有效值 我当前的查询是: 更新TransactionHeaders H SET CreateDate= 海螺 日期从TransactionDetails中选择CreateDate,其中TransactionUID=H.UID按TransactionUID分组, ' ', TIMECreateDate 其中UID>0; 我想用 从T
还有一件事,TransactionDetails通过TransactionUID 1对多引用TransactionHeader。GROUP BY是否保证只返回一个结果?这是正确的选择
UPDATE transactionsheaders H
SET CreateDate = CONCAT(DATE(ifnull((SELECT
CreateDate
FROM transactionsdetails
WHERE TransactionUID = H.UID
GROUP BY TransactionUID)),'2012-02-02'), ' ', TIME(CreateDate))
WHERE UID > 0;
您可以设置任何默认值而不是'2012-02-02'甚至datenow为什么不只对空记录运行更简单的更新查询?还有一个是针对CreateDate出错的人的?您不必总是将所有逻辑组合到一个查询中。这不应该影响所有行吗?98行受影响的行匹配:45922已更改:98警告:0忘记它,它正在正常工作。它只会在不同的情况下更新。正当