请问各位大大,在实际的查询数据表中,如果需要去重复,但是保留第二行,去除第一行,查询语句应该怎么写呢? 比如:
数据表 a
id name age paixu
1 张三 18 5
2 李四 19 3
3 王五 30 4
4 帅帅 16 1
5 妞妞 16 2例如要按字段 age 查询 年龄 不重复的记录,按字段 paixu 的值进行排序,一般都会用语句:
SELECT * FROM a where age != 0 GROUP BY age ORDER BY paixu
得到结果:
id name age paixu
4 帅帅 16 1
2 李四 19 3
3 王五 30 4
1 张三 18 5
上面的结果排除的是 id为 5的 行 但是如果需要保留id为5的行 而排除id为4的行呢?例如需要得到的结果为:id name age paixu
5 妞妞 16 2
2 李四 19 3
3 王五 30 4
1 张三 18 5
查询语句应该怎么写呢?
数据select
数据表 a
id name age paixu
1 张三 18 5
2 李四 19 3
3 王五 30 4
4 帅帅 16 1
5 妞妞 16 2例如要按字段 age 查询 年龄 不重复的记录,按字段 paixu 的值进行排序,一般都会用语句:
SELECT * FROM a where age != 0 GROUP BY age ORDER BY paixu
得到结果:
id name age paixu
4 帅帅 16 1
2 李四 19 3
3 王五 30 4
1 张三 18 5
上面的结果排除的是 id为 5的 行 但是如果需要保留id为5的行 而排除id为4的行呢?例如需要得到的结果为:id name age paixu
5 妞妞 16 2
2 李四 19 3
3 王五 30 4
1 张三 18 5
查询语句应该怎么写呢?
数据select
FROM messages m1 LEFT JOIN messages m2
ON (m1.name = m2.name AND m1.id < m2.id)
WHERE m2.id IS NULL;