很抱歉,如果这一点不明确,但我会尽力使其尽可能清楚。
所以基本上我想更新所有列记录,如果所有列记录都是=某事。
例如:
Name id Col1 Col2
Row1 1 6 1
Row2 2 2 1
Row3 3 9 1
Row4 4 16 1
如果所有Col2记录= 1,则将它们全部设置为= 2
所以表格会更新到这个:
Name id Col1 Col2
Row1 1 6 2
Row2 2 2 2
Row3 3 9 2
Row4 4 16 2
但如果表格是这样的:
Name id Col1 Col2
Row1 1 6 1
Row2 2 2 1
Row3 3 9 1
Row4 4 16 2
没有什么会改变,因为并非Col2的所有记录都是= 1。
我有这个代码,我知道为什么它不能按照我想要的方式工作,但我没有足够的知识来解决它:
UPDATE test as test,
(
SELECT test.Col2 FROM test WHERE test.Col2 = '1'
) as temp
SET test.Col2 = '2' WHERE temp.id = test.id
提前谢谢。
答案 0 :(得分:1)
UPDATE test,
(SELECT COUNT(*) as c1 FROM test where Col2=1) as a1,
(SELECT COUNT(*) as c2 FROM test) as s2
SET test.Col2=2 WHERE c1=c2;