如何从mysql表中获取不同的记录?

| 我有一个这样的餐桌学生
id | name | zip 
1  | abc  | 1234
2  | xyz  | 4321
3  | asd  | 1234
我想获取所有记录,但不应重复邮政编码。因此,在上述表记录的情况下,应获取记录1和2。将不会提取第3条记录,因为它的邮政编码已在第1条记录中。     
已邀请:
SELECT DISTINCT fieldName FROM tableName;
以下查询将仅选择不同的\'zip \'字段。
SELECT DISTINCT zip FROM student;
SELECT * FROM tableName GROUP BY fieldName;
以下查询将选择所有字段以及不同的zip字段。
SELECT * FROM student GROUP BY zip;
    
尝试
 SELECT DISTINCT(zip),id,name FROM student;
要么
  SELECT * FROM student GROUP BY zip;
    
在MySQL中,您完全可以摆脱:
SELECT *
FROM student
GROUP BY zip 
我会选:
SELECT * 
FROM student t
  JOIN 
    ( SELECT MIN(id) AS minid
      FROM student
      GROUP BY zip
    ) AS grp
    ON grp.minid = t.id
    
由于大概其他的列都引起了一些兴趣。
 SELECT y.*
 FROM yourTable y,
 (SELECT MIN(y2.id)
  FROM yourTable y2
  GROUP BY y2.zip) ilv
 WHERE ilv.id=y.id;
(或者您可以使用max-concat技巧) 更新 Oracle现在已从链接页面中删除了max concat技巧-但这已在Internet上的其他地方进行了描述     
尝试使用
Select Distinct(zip),id,name group by zip;
    
如果我在下面这样使用,有什么问题吗?
select distinct zip,name,id from student;
    
select id, name, distinct(zip) from student;
    

要回复问题请先登录注册