关于多字段排序

zhouzb889 2011-05-23 02:04:07
现在在做一个商品展示模块,商品记录中有这么几个字段:热销 hot,新品 new,添加时间time
是否热销/新品是通过的hot和new的值0/1来区分的,

现在我想让热销和新品排在前面,其余的按时间排序,SQL示例:

SELECT *
FROM `products`
ORDER BY `hot`,`new`, `time` DESC;


但是这样并不能达到目的,有些新品排在了非新品也非热销商品的后面。

请问如何解决这个问题?

...全文
161 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shine333 2011-05-23
  • 打赏
  • 举报
回复
难道2F的答案不正确??
ORDER BY `hot` DESC,`new` DESC, `time` DESC;
wwwwb 2011-05-23
  • 打赏
  • 举报
回复
贴建表及插入记录的SQL,及要求结果出来看看
ACMAIN_CHM 2011-05-23
  • 打赏
  • 举报
回复

建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式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)

这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。

minitoy 2011-05-23
  • 打赏
  • 举报
回复
SELECT *
FROM `products`
ORDER BY `hot` DESC,`new` DESC, `time` DESC;
rucypli 2011-05-23
  • 打赏
  • 举报
回复
这没办法,只能一个字段排完再另一个


或者你逻辑业务改一改


否热销/新品 按权重改成一种属性

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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