我需要更新一列,其中一些单元格已满,有些单元格为空白。 我有这样的代码,它不起作用。
d.setHours(d.getHours() - 5)
答案 0 :(得分:2)
这是正确的语法:
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
答案 1 :(得分:0)
我会在子查询中使用select distinct
保持警惕,因为您仍然可以获取重复项。只需使用group by
,就可以保证子查询每个ProgId
仅生成一行:
UPDATE table_name t JOIN
(SELECT progID, MAX(type_name) as type_name
FROM table_name
WHERE type_name <> ''
GROUP BY progID
) tt
ON t.progID = tt.progID
SET t.type_name = tt.type_name
FROM table_name t1
WHERE t1.type_name <> '';