后有条件插入我有一个旧的数据库重构和面临此表:MySQL的 - 选择查询
会员
id | Name | Role
1 | Tyler | 6
2 | Jane | 16
3 | Jack | 20
角色
id | role | Level
1 | Visitor | 1
2 | Member | 2
3 | Monthly Member | 4
首先,我很困惑,因为角色在成员表中与角色表中的任何数据都不匹配。在分析源代码之后,我了解到这位程序员已经想出了他自己的方式...
所选角色= 2 ^(角色的级别)。
即)杰克是一个会员&每月会员
杰克的角色= 2 ^(构件电平)+ 2 ^(每月构件电平)= 2^2 + 2^4 = 20。
嗯,这是我想要做的。我将创建三个代表多对多关系的表格。
会员
id | Name
1 | Tyler
2 | Jane
3 | Jack
角色
id | role
1 | Visitor
2 | Member
3 | Monthly Member
Member_Role
member_id | role_id
1 | 1
1 | 2
3 | 2
现在,我要选择所有成员,并插入相应的member_id & rold_id到Member_Role表,但不知道如何编码这个查询。我总的想法是这样的......
//Select all members from member table
//if role is 16
// insert his member id and monthly memberid to member_role table
//if role is 20
// insert his member id and member(role) id to member_role table
// insert his member id and monthly member id to member_role table
// and so on....
重要的是我想这取决于它的条件手动插入值。这是因为我将重新排列角色的顺序,并且这个“所选角色= 2 ^(角色的级别)”公式将不再起作用。因此,我更喜欢硬编码而不是通用编码。这是一次性使用代码无论如何...
谢谢!
现实地说,在这之前有多少**实际**排列的旧数据是严重过度设计的,9? – Drew
为什么2^2 + 4^2而不是2 + 4?我想我们永远不会知道。 – Strawberry
@DrewPierce我找到了10种不同的组合。幸运的是,不足以手动编码它;) – Raccoon