MYSQL 多表 条件多LIKE 并且是OR 链接, 出来好多重复数据,为什么啊?

通过 LIKE+OR 创建重复数据。

首先检查重复数据。
规模 选择列名,COUNT(); 来自表名 按列名分组 COUNT () > 1 ;
存在 使用 MAX(id) 过滤最后一个 ID。
规模 选择顶部(id) 来自表名 where 条件;
删除重复的 ID。
规模 从表名中删除 WHERE id(过滤器id列表);
检查是否有泄漏。

如何删除数据库中A表和B表中的重复数值

数据库中 DISTINCT 的作用是什么?

哈,你问DISTINCT,这个东西我以前做过几次,确实蛮实用的。

以我2 02 3 年在上海做的项目为例。
有一个表“Orders”,其中数据相当混乱。
“公司”列通常有重复的值。
例如,W3 School 出现两次。
直接使用SELECT Company FROM Orders发现一堆乱码,W3 School反复出现。

后来我们将其更改为 SELECT DISTINCT Company FROM Orders。
现在,结果干净整洁:IBM、W3 School、Apple,每个公司名称只出现一次。
这是DISTINCT最直接的功能,过滤掉重复的行,只留下唯一的值。

您提到的语法 SELECT DISTINCT column name FROM table name 是正确的,这就是它的使用方式。
例如,SELECT DISTINCT Company, OrderNumber FROM Orders,则 Company 和 OrderNumber 两个字段必须合并才能被视为重复。
只有当“Company”为W3 School、“OrderNumber”为3 5 3 2 ,并且这两个条件完全相同时,才会被视为重复记录,并被过滤掉。

但是你后面所说的“如果指定了 SELECT DISTINCT,则 ORDER BY 子句中的项目必须出现在选择列表中”是正确的。
记得有一次写SQL的时候,想用SELECT DISTINCT Company ORDER BY Company,结果直接报错。
我当时就一头雾水,找了半天才发现ORDER BY中的Company一定是你SELECT选择的字段,不能随便添加。
所以这一点一定要记住,不然很容易出事。

至于你在扩展信息中所说的那句话,“虽然DISTINCT是用来过滤重复记录的,但它通常只用来返回唯一记录的条数,而不是用它来返回非重复记录的所有值”。
我不确定这个说法是否准确。
在我的印象中,使用DISTINCT的结果不仅仅是过滤掉重复行后剩下的所有值。
为什么它只返回数量? 这部分我没有亲身经历过,所以可能我的理解有偏差。
无论如何,你可以弄清楚。
如果你真的只想计算数量,你不是只使用 COUNT (DISTINCT 列名) 吗?