[英]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.