我在MySQL表中有两列:
bname和count
bname count
---------- ----------
Blah 2
Blah 2
huh 3
lol 1
huh 3
huh 3
我想要这样的东西。我已经创建了count列但我不知道如何像上面的例子一样显示它。 count列当前为空。
答案 0 :(得分:6)
你应该使用好的旧组......
select bname, count(*)
from mytable
group by bname
这将按唯一值对行进行分组,并提供每个组的行数。
如果您想将它存储在表格中:
UPDATE myTable updated
JOIN (select bname, count(*) as cnt
from mytable
group by bname) aggregate
ON updated.bname= aggregate.bname
set `count`= aggregate.cnt
注意反引号,我认为你需要在这里
这应该将所有行设置为各自的重复次数。
答案 1 :(得分:0)
如果要运行查询:
select bname,
(select count(*) from t t2 where t2.bname = t.bname) as cnt
from t
这将为您提供每行的附加列。
如果要填写值,请使用update
:
update t
set count = (select count(*) from t t2 where t2.bname = t.bname)
这实际上将表中的值更改为计数。