mysql - 选择然后插入每个结果
问题描述
我有这张桌子:
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)
我有太多的记录,所以我不能一一插入。
编辑:
user_offer_rels
运行此 INSERT 后该表的所需结果:
+----+--------+--------+-------+
| 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 |
+----+--------+--------+-------+
解决方案
您可以使用 select as insert 语句
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
身份证 | 用户名 | 许可ID | 状态 -: | -----: | -----: | ----: 1 | 1 | 1 | 0 2 | 1 | 2 | 0 3 | 2 | 1 | 0 4 | 2 | 2 | 0 5 | 1 | 4 | 0 6 | 2 | 4 | 0
db<>在这里摆弄
推荐阅读
- python - 使用 Selenium (Python) 从 iFrame 中提取 cookie
- angular - 禁用列表项Angular 8
- python - 尝试制作黑色图像但 np.unit8 出错
- django - 在字段下显示 error_messages
- extjs - Modern Toolkit- Grid with Multiselection:如何在网格行选择上勾选多个复选框。?
- python - 为什么我收到 django.db.models 错误,告诉我在 Django (3.1.6) 和 Python(3.8) 中没有 TextChoices 的属性?
- reactjs - 使用 Redux 钩子时需要动作创建者吗?
- windows - 如何禁用 Inno Setup 安装程序 GUI 上的导航键?
- java - LDAP over TLS 与 Spring 框架
- session - Google Firebase 中的平均参与时间是什么意思?