我正在尝试更新数据库中的字段nr:
我有:示例数据……
餐桌环
ID ri mr nr
1 a 0
2 a b 0
3 a c 0
4 d 0
5 b e 0
6 e f 0
我需要一个查询该结果的总和,其中sum计算ri中mr apear的值的次数并更新此值的nr
结果应该像这样
ID ri mr nr
1 a 2
2 a b 1
3 a c 0
4 d 0
5 b e 1
6 e f 0
答案 0 :(得分:1)
您可以使用join
和group by
:
select t.*, coalesce(cnt, 0) as nr
from t left join
(select mr, count(*) as cnt
from t
group by mr
) tt
on t.mr = tt.mr;
答案 1 :(得分:1)
您可以使用查询来计算ri
与mr
匹配的次数
select
t.*,
(select count(*) from tablename where ri = t.mr) nr
from tablename t
如果nr列存在并且您要更新它:
update tablename t
set t.nr = (select count(*) from tablename where ri = t.mr)
如果您使用Mysql,则可以:
update tablename t
inner join (
select mr, (select count(*) from tablename where ri = t.mr) counter from tablename t
) tt on tt.mr = t.mr
set t.nr = tt.counter
请参见demo
答案 2 :(得分:0)
供更新使用
update tablename set nr = (select count(*) from tablename where ri = mr)
答案 3 :(得分:0)
UPDATE <rule name="RuleXYZ" stopProcessing="true">
<match url="(.*)\..+"/>
<conditions logicalGrouping="MatchAll">
<add input="{URL}" negate="true" pattern="\.axd|\.jpg|\.png|\.css|\.js|\.ico$" />
<add input="{HTTP_X_Requested_With}" pattern="^XMLHttpRequest$" negate="true" />
</conditions>
<action type="Redirect" redirectType="Temporary" url="/{R:1}" appendQueryString="false" />
</rule>
a,(SELECT ri,COUNT(*)cnt
来自ring
分组方式ri)b
SET a.nr = b.cnt Mr = b.ri“);
这项工作对我来说谢谢