[英]Update a column value to the COUNT of rows for specific values in same table
我正在从MySQL到.csv的数据导出,我需要根据表中的特定列包含行计数。
我有一个名为e
的表,其中包含列id
, e1
和e2
|id|e1|e2|
| 1| A| |
| 2| A| |
| 3| A| |
| 4| B| |
| 5| C| |
| 6| B| |
我正在寻找的结果是:
|id|e1|e2|
| 1| A| 3|
| 2| A| 3|
| 3| A| 3|
| 4| B| 2|
| 5| C| 1|
| 6| B| 2|
如果我尝试这样的事情:
UPDATE `e` SET `e2` = (SELECT COUNT(`id`) FROM `e` WHERE `e1` = 'A') WHERE `e1` = 'A';
我得到: 你不能在FROM子句中为更新指定目标表'e'
如何更新我的数据,以便e2
中的值是具有e1
值的行的COUNT? 这是我在MySQL中不能/不应该做的事情,但应该在PHP中做什么?
(我觉得我错过了一些明显的东西....)
UPDATE e a, (SELECT e1,COUNT(*) cnt
FROM e
GROUP BY e1) b
SET a.e2 = b.cnt
WHERE a.e1 = b.e1;
with
AAA AS
(
select e1,count(*) as cnt from e group by e1
)
update e
set e2 = AAA.cnt
from e
inner join AAA ON e.e1 = AAA.e1
尝试以下查询:
update e
set e2 = a.cnt
from e inner join (select e1,count(*) as cnt from e as a group by e1) as a ON e.e1 = A.e1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.