在SQL中替换for循环

时间:2013-08-12 08:41:24

标签: sql for-loop

我在数据库中有一个表。例如,用户ID和权限ID表:

UserId  RightId
---------------
1       1
1       2
1       3
2       1
2       2
3       1
3       2
3       3
4       1
4       2
5       1
6       1
6       2

为每个userId new rightId 4插入的最佳方法是什么?

我听说使用while或for循环不是做这种事情的最好方法。 你能告诉我一个例子如何用JOIN和SET解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

这样的东西
INSERT INTO MyTable (UserID, RightID)
SELECT  DISTINCT
        UserID,
        4
FROM    MyTable

SQL Fiddle DEMO

答案 1 :(得分:0)

如果您只是想更改RightId列中的每个条目,您可以尝试这样的事情:

UPDATE <table_name> SET RightId=4;