gpt4 book ai didi

mysql - 在子查询中使用 if 来 CONCAT

转载 作者:行者123 更新时间:2023-11-29 14:24:26 26 4
gpt4 key购买 nike

我尝试编写一个查询来更正表中 DATETIME 字段中的错误,但我的子查询可以返回 NULL 作为 transactiondetails,并且 CreateDate 字段需要具有有效值。

我当前的查询是这个:

UPDATE transactionsheaders H SET CreateDate = 
CONCAT(
DATE((SELECT CreateDate FROM transactionsdetails WHERE TransactionUID=H.UID GROUP BY TransactionUID)),
' ',
TIME(CreateDate))
WHERE UID>0;

我想使用

的结果
SELECT CreateDate FROM transactionsdetails WHERE TransactionUID=H.UID GROUP BY TransactionUID

如果不是NULL,则为DATE(CreateDate),否则。

我一直在尝试使用 IF 来实现此目的,但在编写有效的内容时遇到问题...

还有一件事,transactionsdetails通过TransactionUID引用transactionsheaders(1对多)。 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”甚至日期(now())的任何默认值

关于mysql - 在子查询中使用 if 来 CONCAT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11260305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com