我希望以下查询将更新所有行,其中updated=0
,但它不。它只做一次更新。你能明白为什么吗?为什么不更新所有行时应更新所有行?
UPDATE scores t1
JOIN scores t2
ON FIND_IN_SET(t1.id, t2.vals)
SET t1.total = t1.total + 1
WHERE t2.updated = 0;
表运行的查询
"id" "total" "vals" "updated"
"1" "0" "" "0"
"2" "0" "" "0"
"3" "0" "" "0"
"4" "0" "1,2,3" "0"
"5" "0" "1,2" "0"
期望的结果
"id" "total" "vals" "updated"
"1" "2" "" "0"
"2" "2" "" "0"
"3" "1" "" "0"
"4" "0" "1,2,3" "0"
"5" "0" "1,2" "0"
之前什么我越来越
"id" "total" "vals" "updated"
"1" "1" "" "0"
"2" "1" "" "0"
"3" "1" "" "0"
"4" "0" "1,2,3" "0"
"5" "0" "1,2" "0"
由于update scores set totals = 1 where updated = 0
更新了所有行,所以这也应该起作用。
它只更新匹配'ON'条件的行。 – Barmar
@Barmar我已经用结果更新了我的问题。它只更新一次在我的情况下,采取'4' – jmenezes