tho*_*mas 5 mysql database performance database-normalization database-table
假设你有mySQL表描述你是否可以混合两种物质
Product A B C
---------------------
A y n y
B n y y
C y y y
Run Code Online (Sandbox Code Playgroud)
第一步就是改变它
P1 P2 ?
-----------
A A y
A B n
A C y
B A y
B B y
B C n
C A y
C B n
C C y
Run Code Online (Sandbox Code Playgroud)
但是你有重复的信息.(例如,如果A可以与B混合,那么B可以与A混合),因此,您可以删除多行来获取
P1 P2 ?
-----------
A A y
A B n
A C y
B B y
B C n
C C y
Run Code Online (Sandbox Code Playgroud)
虽然使用小桌子的最后一步非常简单,但手动操作会永远占用更大的桌子.如何使用重复的MEANING自动删除行,但不是相同的内容?
谢谢,我希望我的问题有意义,因为我还在学习数据库
如果可以安全地假设您从所有关系加倍开始,例如
如果A B在表中,则B A保证在表中。
然后您所要做的就是删除 P2 < P1 的所有行;
DELETE FROM `table_name` WHERE `P2` < `P1`;
Run Code Online (Sandbox Code Playgroud)
如果不是这种情况,您可以通过遍历表并插入所有重复行(如果它们尚不存在),然后运行它来实现这种情况。
| 归档时间: |
|
| 查看次数: |
128 次 |
| 最近记录: |