表结构如下
bid add_time uid
2121 2010-02-02 0203
6565 2010-05-03 0203
31 2010-01-02 0204
5454 2010-12-12 0202
想得到如下数据
bid add_time uid
6565 2010-05-03 0203
31 2010-01-02 0204
5454 2010-12-12 0202根据uid只取一条记录,重复的不算。取的记录根据add_time,取最大的日期
求解~~
bid add_time uid
2121 2010-02-02 0203
6565 2010-05-03 0203
31 2010-01-02 0204
5454 2010-12-12 0202
想得到如下数据
bid add_time uid
6565 2010-05-03 0203
31 2010-01-02 0204
5454 2010-12-12 0202根据uid只取一条记录,重复的不算。取的记录根据add_time,取最大的日期
求解~~
解决方案 »
- 字符串处理问题preg_replace(),出现奇怪的替换,求大牛解决!
- php 怪问题,高手进来看下
- 已知http://topic.csdn.net/ui/images/logo_csdn.gif和logo_csdn.gif,求http://topic.csdn.net/ui/images/
- thickbox問題,,在線= 急啊!!
- 请教有关php+xml读取属性问题!!!!!!!
- PHP优先级【逻辑或】 “||” 左右两边的优先级是否一样
- 这个类有存在的意义吗?
- 怎么修改这段代码?如果成功则加分,谢谢大家
- 求教这个关于cookie的代码该怎样写?
- 求php远程抓取代码
- base64_decode乱码
- 呵呵,很简单的代码,怎么都没看出哪里错误。
试一试看看
为什么MYSQL不能再distinct后面跟*号呢 这样查询数据起来挺麻烦的
SELECT distinct(字段) FROM ...这样只能查询去除字段的信息。反正效果实现了 等下再开贴细问吧
select * from tb t where add_time=(select max(add_time) from tb uid=t.uid)
--2
select * from tb t where
not exists
(
select 1 from tb uid=t.uid and add_time>t.add_time
)
应该为:
SELECT * FROM ( SELECT * FROM tb ORDER BY add_time DESC) tt GROUP BY uid
我想得到add_time最大的那条。同时去除重复的username开始我的几条语句都无法达到这个效果
SELECT DISTINCT userid FROM tbl_brand_audit ORDER BY add_time DESC
SELECT COUNT(DISTINCT userid) AS num FROM tbl_brand_audit 现在只有1个username,有多个username的时候就报错了
那应该用id 来做
select * from tbl_brand_audit a
where not exists (select 1 from tbl_brand_audit b where b.userid = a.userid and b.id>a.id)