如何按 DESC 或 ASC 对 varchar 数字列进行排序?
我写...
ORDER BY column ASC
但我的列是 VARCHAR
并且它排序错误,如 1, 10, 2
,而不是 1, 2, 10
。
我怎样才能像 1, 2, 10
那样排序?
I write ...
ORDER BY column ASC
but my column is VARCHAR
and it sorts wrong like 1, 10, 2
, instead of 1, 2, 10
.
How can I do it to sort like 1, 2, 10
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
注意:
编辑:对于 MySQL。 您无法转换为浮动
Notes:
Edit: For MySQL. You can not cast to float
您可以转换为 int...
DEMO
打印
所以,丹尼尔,是的,它有效:)
更新:
将列值转换为最多 20 位数字和 6 位的十进制数字小数位。根据您的实际要求进行调整。
You can cast to int...
DEMO
prints
So, Daniel, yes, it works :)
UPDATE:
Will cast the column values to decimal numbers with 20 digits max and 6 decimal places. Adjust it to your actual requirements.
试试这个:
Try this:
我用这种方式
将其乘以 1,查询为:
示例:表 user 具有列值
[varchar(20)]
的值。然后就可以查询了:
在我们乘以它之后,MySQL 会将其视为一个数字,但不建议在重负载时使用这种方式。
i used this way
multiply it with one the query is :
Example: Table user have value with column value
[varchar(20)]
.Then you can query it:
After we multiply it MySQL will treat it like a number but this way is not recommended for a heavy load.