我有一张名为student的表格,像这样
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;
以下查询将选择所有字段以及唯一的邮政编码字段。
以下查询将选择所有字段以及唯一的邮政编码字段。
SELECT * FROM student GROUP BY zip;
SELECT DISTINCT zip FROM tableName;
和 SELECT DISTINCT FROM tableName;
有什么区别?这两个查询语句的结果可能不同吗? - Student尝试
SELECT DISTINCT(zip),id,name FROM student;
或者
SELECT * FROM student GROUP BY zip;
SELECT DISTINCT(zip),id,name FROM student;
出现 ID
? - Haithem Rihane虽然在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;
yourTable y
后面缺少了一个逗号。 - ypercubeᵀᴹ尝试使用
Select Distinct(zip),id,name group by zip;
如果我像下面这样使用,会有什么问题吗?
select distinct zip,name,id from student;
select id, name, distinct(zip) from student;
zip
集合,其中第一条记录具有该值? - Albireo