首页 > 解决方案 > 如何使用当前字段中的值对表执行更新

问题描述

如何使用当前字段中的值对表执行更新。

已经实现了一些试用代码,但会产生错误。

UPDATE T_CONFIG
    SET MIN_REQUIRED_DATE = MIN(select REQUIRED_DATE FROM (select TABLE_NAME from T_CONFIG ))
where MIN_REQUIRED_DATE ='';

MIN_REQUIRED_DATE将从嵌套选择中获得的表中获取最小日期。

标签: mysql

解决方案


首先,查看您的查询

UPDATE T_CONFIG
SET MIN_REQUIRED_DATE = MIN(select REQUIRED_DATE FROM (select TABLE_NAME from 
T_CONFIG ))
where MIN_REQUIRED_DATE ='';

并专注于本节

MIN(select REQUIRED_DATE FROM (select TABLE_NAME from 
T_CONFIG ))

我注意到2个问题:

1)您试图从仅返回列名REQUIRED_DATE的 select 语句中检索列。我认为这不是你的意图select TABLE_NAME from T_CONFIGTABLE_NAME

MIN2)函数放置错误

所以,根据我从你的困境中得出的结论。你的解决方案应该是这样的..

UPDATE T_CONFIG
SET MIN_REQUIRED_DATE = (select MIN(REQUIRED_DATE) FROM (select * from 
T_CONFIG) a)
where MIN_REQUIRED_DATE ='';

这应该将作为空字符串的列的所有行设置MIN_REQUIRED_DATE为该表的最小日期值T_CONFIG

注意:您可能想重新确认这个MIN_REQUIRED_DATE“数据类型”,我个人不记得日期类型列可以是空字符串。根据我的记忆,我只记得它采用了实际的日期值或 Null。


推荐阅读