有一个类似大众点评那样的系统,用户对一家店会打分,并有一段文本的评语
现在希望每个店的点评,排序顺序是打分比较高,同时文字长度比较长的如果用order by score DESC,length DESC 这样的写法,只会优先按照一个字段来排序。可能第一个点评打分是最高,但是长度又是最小的有什么办法能够兼顾呢?
现在希望每个店的点评,排序顺序是打分比较高,同时文字长度比较长的如果用order by score DESC,length DESC 这样的写法,只会优先按照一个字段来排序。可能第一个点评打分是最高,但是长度又是最小的有什么办法能够兼顾呢?
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
评分 长度
9 10
9 20
8 30
7 60得到的结果是
9 20
9 10
8 30
7 60
这种方式评分过于暴力
select *,0+评分+length(长度) as px from tt) a
order by px