【问题标题】:How to return ASC properly in query [duplicate]如何在查询中正确返回 ASC [重复]
【发布时间】:2016-04-27 21:36:10
【问题描述】:

我在数据库中有一组行,它们对某些特定的东西有计数。 当我进行查询时:

SELECT * FROM table ORDER BY field ASC LIMIT 1

我得到的结果不正确,因为它显然是根据第一个数字排序的。

所以结果应该是:

1
2
3
4
5
10

最终成为:

1
10
2
3
4
5

如何调整我的查询以使该字段以正确的顺序返回?我不知道如何用词来搜索以获得正确的答案。

【问题讨论】:

  • 列的类型是什么?
  • 您是如何使用LIMIT 1 获得 6 个值(行)的?
  • order by cast(field as int)
  • 确保它是 int 或数字,具体取决于您的数据库,因为您上面拥有的数据类型需要在 int 类型的列中

标签: php mysql


【解决方案1】:

我很久以前就学到了一个技巧,它也适用于字母表。

SELECT * FROM table 
ORDER BY LENGTH(field) ASC, field ASC

学会这个技巧,你现在就是ORDER BY的大师了:D

【讨论】:

  • 你得到了我的投票!完美运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-15
  • 2016-05-08
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
  • 2016-05-08
  • 2012-03-11
相关资源
最近更新 更多