【问题标题】:Sort 0-valued database rows after non-zero rows在非零行之后对 0 值的数据库行进行排序
【发布时间】:2011-01-03 03:17:44
【问题描述】:
id rank 
5   1
3   2
4   3

1   0
2   0
6   0

这个结果:rank = 0rank > 0 之后

我不知道怎么用SQL ORDER BY排序结果

【问题讨论】:

  • SELECT * FROM table WHERE fieldname=value ORDER BY rank ASC。使用 ORDER BY .. ASC 或 DESC。这是最简单的方法。

标签: mysql sorting


【解决方案1】:
  SELECT *
    FROM mytable
ORDER BY IF(rank > 0, 0, 42),
         rank

42任何正数。我选择 42 只是因为它是 http://en.wikipedia.org/wiki/Answer_to_the_Ultimate_Question_of_Life,_the_Universe,_and_Everything

【讨论】:

  • @Phrogz: 是的 ;-) 刚才提到 42 在这里最合适 ;-)
  • @zerkms 这是你想要的某种奇怪的俳句格式吗?
  • @Phrogz:我喜欢将其命名为“小马风格”,因为它是由stackoverflow.com/users/135152/omg-ponies 发明的。你可以看看他是如何格式化查询的。我认为(和这里的许多用户一样)它很方便。
  • @zerkms 我认为他从未将领先的SELECT 缩进比从属部分更远。 (另外,我很确定他没有发明多行 SQL 格式。)耸耸肩
猜你喜欢
  • 2017-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多