MySQL多个字段取并集轻松实现数据筛选和合并mysql不同字段取并集

嘿嘿,给大家讲一下我遇到的MySQL的事情。
去年,我在北京做一个项目,遇到了一个非常困难的需求。
有必要合并两个表中的数据并确保不计算重复项。
当时我的心里就在想,该怎么办?
当我看到结果时,哇,这太简单了!只需使用联合。
您会看到,我的两个表(名为“用户”和“来宾”)都有 ID、姓名和电子邮件字段。
users 表有大约 1 ,000 个条目,guests 表有 8 00 个条目。

我写了一个SQL,像这样:
SQL 选择用户的 ID、姓名、电子邮件 联盟 选择客人的 ID、姓名、电子邮件;
该联合将自动帮助您从两个表中选择数据,并且重复项将仅计算一次。
实施结果将在实施后揭晓。
例如,ID 为 1 的项目同时出现在两个表中,并且仅显示一次。
我检查了一下,确实有效。

后来出现了客户坚持保留重复记录的情况,所以额外的记录也给了我。
当时我加了一个UNION ALL。
你看:
sql 选择用户的 ID、姓名、电子邮件 联合所有 选择客人的 ID、姓名、电子邮件;
在此执行中,ID 为 1 的项目在两个表中都存在,因此显示了两次。
看看客户是否满意。

这件事给我留下了深刻的印象。
只需弄清楚何时使用 UNION 以及何时使用 UNION ALL 即可。
如果忘记添加 UNION ALL 和结果中的数据如果丢失了,那就麻烦了。

哦,顺便说一句,还有另一个危险。
也就是说,两个表必须选择相同数量的字段,并且类型必须匹配。
我以前就犯过一次错误。
我在一个表中选择了三个字段,在另一个表中仅选择了两个字段。
结果只是一个错误,表示列不匹配。
我立即改变了它。
这个教训是非常深刻的。

因此,使用UNION合并数据简单、粗暴、好用。
只需确保列的数量和类型相同即可。
我在其他事情上没有遇到太大麻烦。
我确实用过,非常方便。

mysql字段过多无法创建

创建一个字段太多的表是不是很困难?先消除冗余,再对表进行分区。

临时字段将被删除,类似字段将被合并。

描述信息以文本形式存储,复杂关系以JSON格式存储。

订单按年份分表,历史数据存档。

正在检查字段长度,扩展资源不足。

mysql的单表字段建议多少

一个表中的字段不要太多。
2 0-4 0是正常范围。
2 00多所学校直接陷入困境。

腾讯说4 0最稳定,CSDN推荐2 0-3 0。
如何选择?
记录放在一个1 6 KB的页面中,如果字段太多,这个页面就太大了。
VARCHAR2 5 5 计数 2 00 来填充页面。

最大的陷阱是字段太多、查询慢、索引无用、表修改繁琐。
当一条记录读完后,I/O直接崩溃。

典型的风险是陷入困境。
如果索引键长度超过 3 07 2 字节,它将无效。
NULL 字段也会占用空间。

如何更改?
将连续数据分表,并在相关表中添加外键。
按操作分表,设置总表+明细表。

使用 TINYINT 保存状态,使用 DECIMAL 保存金额。
JSON 类型存储各种数据。

总结:不要盲目添加字段。
2 0-3 0是标准的。
优化复杂业务的分表。

我也在看这个。
这是第一个。