mysql 求教数据排序问题……

tt007 2007-02-07 09:27:02
有谁知道阿里巴巴的数据排序,同一个客户的供应信息不是连续出现的,都是交叉出现的,(据说是先取每一个用户的一条供应信息显示出来,第二轮再取每一个用户的供应信息显示出来,接着把剩余的全部取出来,按时间倒叙输出。。不知道这种设想是不是正确的,最主要这样取,sql语句要怎么写啊???)
我这里有供应表A:字段如下:
id(主键) uid(用户id) title(供应标题) puttime(发布时间)level(用户等级5,4,3,2,1)
level越高级别越高,1为免费用户
现在要实现level为2以上的用户供应信息交叉出现,并要排在免费用户前面(免费用户就按时间倒叙输出,不要交叉出现)请问这样的语句要怎么写???
...全文
272 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
北里闻箫 2008-07-23
  • 打赏
  • 举报
回复
伪代码:(不过貌似效率超低。。)


//取得需要混淆的用户。
select * from 供应表A where level>2 order by id

//获得所有内容的数组
row[]

//取得需要混淆的用户的总数
select * from 供应表A COUNT(id) as max where level>2 order by id
//混淆。当然,具体怎么混淆,随便你怎么写了。

for (i=0,i<(max-1),i++)
{

if(row[i]['uid']<>row[i+1]['uid']))//当未出现连续2条同用户记录时。这里可以通过and 来限制连续几条。
{
row[i]['list']=row[i]['id'];//list直接等于id
}
else if (row[i]['uid']==row[i+1]['uid']))//当出现连续2条同用户记录时。
{
row[i+1]['list']=row[i]['list']+1;//list直接等于第一条记录的list加1。
row[i+2]['list']=row[i+1]['id'];//list第3条换到第2条记录的位置上。
}

//这里的i+1,i+2之类的。可以改为i+n。再对n进行循环。
}
//获得等于大于2用户排列的最大数
row[max-1][list]
//获得正常排序用户
select * from 供应表A where level<2 order by puttime
row2[]

row2[0][list]=row[max-1][list]+1

//取得正常排序用户的max
select * from 供应表A COUNT(id) as max where level<2 order by puttime

for (i=0,i<(max-1),i++)
{
row2[i][list]=row2[i][list]+1;//累加。
}

//执行完上面操作后,就可以直接排序了。上面操作可以每天执行一次。

//直接按list排序。

select * from 供应表A order by list
//完成


tt007 2007-02-07
  • 打赏
  • 举报
回复
楼上高见,但说清楚点啊
iasky 2007-02-07
  • 打赏
  • 举报
回复
都取出来后,在一个数组中,你想如何就如何了
  大家好,我是录制课程的老师,课程已经上线课堂,欢迎大家试听,感谢同学们的支持。在你们的学习中我会全力助你提升MySQL技能,助你冲击更高年薪。支持课程答疑,支持一对一答疑服务,由课程老师直接回答。    MySQL凭借着它不错的性能、不错的稳定性、数据的安全性常年稳居行业老二宝座。    越来越多的DBA和后端同学在工作中少不了和MySQL打交道,也经常会产生这样的疑问:    为什么我写的sql语句性能这么低?  为什么明明我建了索引却没有用到索引?  为什么突然我的数据就成了乱码?  为什么我备份的文件在主库恢复,数据无法同步到从库?  为什么我的数据数据不多,却占了很多的空间?  生产中我应该选择哪种隔离级别?  生产中都在使用innodb存储引擎,我却对它一无所知?  我应该怎么规划缓冲池才能让数据库性能更高?  为什么我做表数据迁移这么慢?  为什么我写的sql会造成那么多的锁冲突、死锁?  为什么我不能将数据恢复到任意时间点?  为什么我不能解决公司主从复制架构中的故障?  吧啦吧啦一大堆问题……    在面试中MySQL的一些知识更成为躲不过的问题,比如b+tree索引、MVCC、隔离级别的实现、锁的使用,主从复制,MySQL性能优化、事务两阶段提交等等都成为了面试考题重灾区。    我的课程就是从实际工作来,从问题出发,带着问题来学习MySQL,想解决问题就要学习新的知识,大家跟紧老司机,MySQL的面纱就会慢慢摘下。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧