簡體   English   中英

選擇然后插入每個結果

[英]Select and then insert for each result

我有這張桌子:

Table name: `user_offer_rels`
+----+--------+--------+-------+
| ID | userID | permID | state |
+----+--------+--------+-------+
| 1  | 1      | 1      | 0     |
| 2  | 1      | 2      | 0     |
| 3  | 2      | 1      | 0     |
| 4  | 2      | 2      | 0     |
+----+--------+--------+-------+

我想為這個查詢的每個結果插入一條新記錄:

SELECT DISTINCT userID FROM `user_offer_rels`

The results:
+--------+
| userID |
+--------+
| 1      |
| 2      |
+--------+

所以對於每個用戶 ID,我需要做這樣的事情:

INSERT INTO `user_offer_rels` (userID, permID, state) VALUES (`the userID record from above`, 4, 0)

我有太多的記錄,所以我不能一一插入。

編輯:

運行此 INSERT 后user_offer_rels表的user_offer_rels結果:

+----+--------+--------+-------+
| ID | userID | permID | state |
+----+--------+--------+-------+
| 1  | 1      | 1      | 0     |
| 2  | 1      | 2      | 0     |
| 3  | 2      | 1      | 0     |
| 4  | 2      | 2      | 0     |
| 5  | 1      | 4      | 0     |
| 6  | 2      | 4      | 0     |
+----+--------+--------+-------+

而不是INSERT ... VALUES ...使用INSERT ... SELECT ...

INSERT INTO user_offer_rels (userID, permID, state) 
SELECT DISTINCT userID, 4, 0
FROM user_offer_rels

請參閱演示

您可以使用選擇作為插入語句

CREATE TABLE user_offer_rels (`ID` int AUTO_INCREMENT PRIMARY KEY , `userID` int, `permID` int, `state` int) ; INSERT INTO user_offer_rels (`ID`, `userID`, `permID`, `state`) VALUES (1, 1, 1, 0), (2, 1, 2, 0), (3, 2, 1, 0), (4, 2, 2, 0)
 INSERT INTO user_offer_rels (`userID`, `permID`, `state`) SELECT DISTINCT userID,4, 0 FROM user_offer_rels
 SELECT * FROM user_offer_rels
\n身份證 | 用戶 ID | 許可證| 狀態\n -: |  -----: |  -----: |  ----:\n  1 |  1 |  1 |  0\n  2 |  1 |  2 |  0\n  3 |  2 |  1 |  0\n  4 |  2 |  2 |  0\n  5 |  1 |  4 |  0\n  6 |  2 |  4 |  0\n

db<> 在這里擺弄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM