【发布时间】:2021-07-26 12:11:57
【问题描述】:
我有一个表说 table1 列 id(INT)、tag(VARCHAR)、tag2(VARCHAR)、var1(VARCHAR)、var2(VARCHAR) 和 external_tags(TINY INT )。只有 id、tag 和 external_tags 字段中才有数据。我必须更新此表中的每一行,以便标记字段中的值应拆分为 tag2 和 var1 字段。例如,有很多行像
|编号 |标签 |标签2 |变量1 | external_tags |var2
| 1 | school_signup_xxx |空 |空 | 0 |空
| 2 | course_enroll_213 |空 |空 | 0 |空
| 3 | course_enroll_556 |空 |空 | 0 |空
| 4 | automation_notify_bounced_111_222 |空 |空 | 0 |空
| 5 | automation_notify_bounced_666_223 |空 |空 | 0 |空
| 6 | automation_notify_bounced_426_253 |空 |空 | 0 |空
| 7 |注册_livestream_co_host_111_schedule_444 |空 |空 | 0 |空
| 8 |注册_livestream_co_host_632_schedule_234 |空 |空 | 0 |空
| 9 |参加_recurring_live_class_868_rec_schedule_151 |空 |空 | 0 |空
| 10 |参加_recurring_live_class_545_rec_schedule_747 |空 |空 | 0 |空
| 11 |手动输入 |空 |空 | 1 |空
| 12 |测试标签 |空 |空 | 1 |空
| 13 |测试标签 abc |空 |空 | 1 |空
我想更新表table1中的上述行如下
|编号 |标签 |标签2 |变量1 | external_tags |var2
| 1 | school_signup_xxx | school_signup | xxx | 0 |空
| 2 | course_enroll_213 | course_enroll | 213 | 0 |空
| 3 | course_enroll_556 | course_enroll |第556章0 |空
| 4 |自动化通知弹跳_111_222|自动化通知弹跳 | 111 | 0 |222
| 5 |自动化通知弹跳_666_223|自动化通知弹跳 |第666章0 |223
| 6 |自动化通知弹跳_426_253|自动化通知弹跳 |第426章0 |253
| 7 |注册_livestream_co_host_111_schedule_444 |注册_livestream_co_host | 111 | 0 |444
| 8 |注册_livestream_co_host_632_schedule_234 |注册_livestream_co_host |第632章0 |234
| 9 |参加_recurring_live_class_868_rec_schedule_151 |参加_recurring_live_class |第868章0 |151
| 10 |参加_recurring_live_class_545_rec_schedule_747 |参加_recurring_live_class |第545章0 |747
| 11 |手动输入 |手动输入 |空 | 1 |空
| 12 |测试标签 |测试标签 |空 | 1 |空 | 13 |测试标签 abc |测试标签 abc |空 | 1 |空 +----+------+------+------+---------- -----+---------------+---------------------------- -------------------
有6个案例
- 如果 external_tags = 0 且 tag = school_signup_{var1value} 则将 tag2 更新为 school_signup 并将 var1 更新为 var1value
- 如果 external_tags = 0 且 tag = course_enrolled_{var1value} 则将 tag2 更新为 course_enrolled 并将 var1 更新为 var1value
- 如果 external_tags = 0 且 tag = automation_notify_bounced_{var1value}_{var2value} 则将 tag2 更新为automation_notify_bounced 并将 var1 更新为 var1value 并将 var2 更新为 var2value
- 如果 external_tags = 0 且 tag = registered_livestream_co_host_{var1value}schedule{var2value} 则将 tag2 更新为 registered_livestream_co_host 并将 var1 更新为 var1value 并将 var2 更新为 var2value
- 如果 external_tags = 0 且 tag = Attended_recurring_live_class_{var1value}rec_schedule{var2value},则将 tag2 更新为 Attend_recurring_live_class,将 var1 更新为 var1value,将 var2 更新为 var2value
- 如果 external_tags = 1 则将 tag2 更新为标签值
如何使用 6 个更新查询更新上述案例?
请回复MYSQL查询。
【问题讨论】:
-
到目前为止您尝试过什么?不要只要求 SO 社区为您编写代码。您的开发人员伙伴很乐意为您的代码提供帮助。
标签: mysql