把TITLE修改成link不行? select link,min(time) as mi from tt group by link
这样子有bug 标题或url相同? 如果有: 1 呵呵 http://1 2 呵呵 http://2 3 哈哈 http://2 4 哈哈 http://3要保留哪个?如下图,运行了 update tt a left join (select title,min(time) as mi from tt group by title) b on a.title=b.title and a.time=b.mi set a.del=if(b.title is null,1,0) 然后把title换成link。 运行后。 出现如下情况了:
用文本贴建表及插入记录的SQL语句,以及要求结果出来
LZ的需求本身可能有个漏洞id title link time 1 你好 http://123 2014/6/12 0:00 2 你好 http://456 2014/6/12 0:01 3 不好 http://456 2014/6/12 0:00 4 不好 http://456 2014/6/12 0:02最后结果,只有id=1的保留了下来wwwwb的小bug可以这样子修复(不考虑效率) UPDATE tt t1 LEFT JOIN ( SELECT group_concat(id) ids, title, min(time) as mintime from tt GROUP BY title ) t2 ON t1.title = t2.title AND t1.time = t2.mintime SET t1.del = IF(find_in_set(id, ids) = 1, 0, 1)
left join
(select title,min(time) as mi from tt group by title) b
on a.title=b.title and a.time=b.mi
set a.del=if(b.title is null,1,0)
版主太牛B了
搞定了就是有个问题,这样子搞定了标题,接下来看link相同的,同样要把time比较早的标记为0.其他的为1,怎么办呢?
select link,min(time) as mi from tt group by link
这样子有bug
标题或url相同?
如果有:
1 呵呵 http://1
2 呵呵 http://2
3 哈哈 http://2
4 哈哈 http://3要保留哪个?如下图,运行了
update tt a
left join
(select title,min(time) as mi from tt group by title) b
on a.title=b.title and a.time=b.mi
set a.del=if(b.title is null,1,0)
然后把title换成link。
运行后。
出现如下情况了:
1 你好 http://123 2014/6/12 0:00
2 你好 http://456 2014/6/12 0:01
3 不好 http://456 2014/6/12 0:00
4 不好 http://456 2014/6/12 0:02最后结果,只有id=1的保留了下来wwwwb的小bug可以这样子修复(不考虑效率)
UPDATE tt t1
LEFT JOIN
(
SELECT group_concat(id) ids, title, min(time) as mintime from tt
GROUP BY title
) t2
ON t1.title = t2.title
AND t1.time = t2.mintime
SET t1.del = IF(find_in_set(id, ids) = 1, 0, 1)
参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。