mysql - 重复超过 2 列

标签 mysql duplicates

所以我试图在 MYSQL 中获取任何具有相同名称和相同数据类型的属性的表对。

SELECT distinct a.table_name,b.table_name FROM INFORMATION_SCHEMA.COLUMNS a  
JOIN INFORMATION_SCHEMA.COLUMNS b on a.column_name=b.column_name   
and a.data_type=b.data_type  
WHERE a.table_schema='Online_food'  
and b.table_schema='Online_food'  
and a.table_name<>b.table_name 

(Online_Food 是我的数据库)

问题是我得到两行
(客户,订单)
(订单,客户)

但我只想要其中之一。其中任何一个。
有什么建议吗???

最佳答案

如果你想排除一半的搜索,你可以这样做:

SELECT distinct a.table_name, b.table_name 
FROM INFORMATION_SCHEMA.COLUMNS a  
JOIN INFORMATION_SCHEMA.COLUMNS b ON a.column_name = b.column_name   
AND a.data_type = b.data_type  
WHERE a.table_schema = 'Online_food'  
AND b.table_schema = 'Online_food'  
AND STRCMP(a.table_name,b.table_name) > 0 

通过选择一个表名在字母数字上比另一个表名大的结果,您可以确保只进行 0.5*n*n-n 比较,其中 n 是表的数量。

关于mysql - 重复超过 2 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43042081/

相关文章:

mysql - 在尝试创建插入过程时,在 netbeans-7.2 中出现以下错误

php - MySQL - 构造查询以丢弃常见结果

mysql - 当我在分布式模式下将它用作 Storm 的持久性存储时,数据库是否应该分布式

javascript - 注册表未正确处理到数据库(PHP/MySQL)

php - 使用 wordpress 多站点意外卸载了 AWS EC2 上的 mysql。需要一点指导

mysql - 如何将记录复制到表中,但如果它们已经存在则不复制

sql-server - 尝试在 SQL Server 2017 中使用 CTE 查找重复项

MYSQL防止特定表字段重复

excel - 连续删除重复的单元格

hadoop - Hbase表复制