mysql - 如何使用其中的值更新表列?

标签 mysql sql

我需要更新一列,其中一些单元格已满,一些单元格为空白。 我有这样的代码,但它不起作用。

UPDATE table_name
SET    t1.type_name = t2.type_name
FROM   table_name t1
INNER JOIN (
    SELECT DISTINCT progID, type_name 
    FROM table_name 
    WHERE type_name <>''
) t2 ON t1.progID = t2.progID
WHERE t1.type_name <>''

最佳答案

这是正确的语法:

UPDATE table_name t1 
INNER JOIN (select distinct progID, type_name from table_name where type_name <>'') t2 
ON t1.progID = t2.progID 
SET t1.type_name = t2.type_name
WHERE t1.type_name <> ''

您不需要 FROM 子句。
但是您确定要更新具有值的 type_name 列吗?
也许将最后一个条件更改为:

WHERE t1.type_name IS NULL

关于mysql - 如何使用其中的值更新表列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55564142/

相关文章:

mysql - 在表中选择每分钟的第一个值

mysql - 在 MySQL 中使用触发器更新 table1 后更新 table2

mysql - openstack/devstack虚拟机安装报错

sql - 触发 UPDATE() 和 COLUMNS_UPDATED() 函数

mysql - 修改 SELECT 查询显示输出

mysql - 在 sql 脚本中插入之间的等待时间?

php - 选择列 FROM table_name WHERE username=$_SESSION ['username' ] 不起作用

mysql - 获取特定时间的数据

sql - 在 PostgreSQL 中向日期添加月份显示语法错误

sql - 在关联表上左连接