有 tb 表,表数据如下:
id | name | age | time |
1 | 张三 | 20 | 2012-12-12 |
2 | 李四 | 22 | 2013-01-12 |
3 | 王五 | 22 | 2014-04-23 |
4 | 张三 | 20 | 2014-04-22 |
5 | 张三 | 20 | 2011-12-12 |
6 | 李四 | 22 | 2015-01-12 |
问题1:获取数据 name ,age 并把 name字段去除重复
答:
select distinct name,age from tb;
查询出的结果为
name age
张三 20
李四 22
王五 22
问题2:想把 id,name,age,time 字段查出,并用 name 字段去除重复
答:这时用 distinct 就不行了,用如下语句
select * from tb as a where id=(select id from tb where a.name=name limit 0,1)
这个方法是可以,但数量特别大的时候,很费时间,不是一个好的选择
用 group by 会很好
select * from tb group by name