这是我的MySQL表:
<pre>{{userForm.firstname.$viewValue}}</pre>
我想将每个组中的可用ID | groupID | value
------------------------------
1 | 1 |
2 | 1 | 0.34353
3 | 1 |
4 | 2 |
5 | 2 | 0.23232
6 | 3 |
7 | 3 |
8 | 3 | 1.23234
9 | 3 |
复制到具有相同groupID的所有行,以便我的最终表格如下所示:
values
一组没有固定数量的行数。我怎样才能做到这一点?
答案 0 :(得分:2)
您可以使用更新联接来完成此操作。将您的初始表加入子查询,该子查询标识每个NULL
的非groupID
值。引入该信息后,将非NULL
值列更新为子查询中的值。
UPDATE yourTable t1
INNER JOIN
(
SELECT groupID, MAX(value) AS value
FROM yourTable
GROUP BY groupID
) t2
ON t1.groupID = t2.groupID
SET t1.value = t2.value
WHERE COALESCE(t1.value, '') = ''
<强>更新强>
对于缺失的数据,您似乎可能有空字符串,而且/或NULL
除此之外。在这种情况下,MAX()
仍应拾取非缺失数据,但我已适当更改了WHERE
子句。