Mysql 查询从相同的值中选择一行(仅选择重复的)

标签 mysql

我的表上有重复的数据,如下所述。

no  name    adrress
1   Joe     No.3
2   Joe     No.2
3   Joe     No.1
4   Anna    No.4
5   Anna    No.5
6   Ali     No.6

我只想显示重复数据中的第一项,如下所示。

  no  name    address  
  1   Joe     No.3
  2   Anna    No.4

最佳答案

如果您只想查找重复项,则此问题类似于您的问题 here

对于你的情况会是这样的

SELECT x.* 
FROM new_table x 
   JOIN 
      ( SELECT name
             , MIN(id) as min_id , COUNT(id) as count_id
          FROM new_table 
         GROUP 
            BY name
      ) y 
     ON y.name = x.name 
    AND y.min_id = x.id 
    AND y.count_id > 1 
  ORDER 
     BY id;

希望能回答您的问题。

关于Mysql 查询从相同的值中选择一行(仅选择重复的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31981599/

相关文章:

php - 循环遍历mysql数据库记录并更改电话格式

php - 使用php查询数据库

mysql - 两个查询的不同结果

mysql - 如何解决 MySQL 中的#1064 错误?

java - Hibernate/JPA 查询,其中包含列表字段中元素的条件(称为 OneToMany)

mysql - 游戏框架 2.5.4。无法连接到数据库 [db] (MySql)

PHP 和 Mysql 查询 JSON 输出

mysql - MAX(col)+1 INSERT 到同一个 MySQL 表时出现问题

mysql 将 auto_increment 字段从 null 更改为记录数

php - 选择小于或等于当前日期的日期