gpt4 book ai didi

MySQL 排序 varchar 列数字,数字在前

转载 作者:可可西里 更新时间:2023-11-01 07:53:33 25 4
gpt4 key购买 nike

我有一个 varchar 列,我想对它进行数字排序,这在使用这个技巧时效果很好:https://stackoverflow.com/a/5418033/1005334 (简而言之:...ORDER BY Result * 1)。

但是,相关表格包含结果。所以会发生这样的事情:

Result
------
DNS
DNF
1
2
3

数字排序正确,但 DNF 在这样排序时位于数字之上。我想要的是对数字进行排序,但将非数字按字母顺序排序在数字下方。像这样:

Result
------
1
2
3
DNF
DNS

我可以通过什么方式修改查询(最好只修改 ORDER BY 子句)以获得此结果?

最佳答案

使用 LPAD

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_lpad

LPAD(yourField, 20, '0');

这将管理“varchar 数字字段”的正确顺序(10 将在 2 之后)并将字符串放在末尾。

SqlFiddle

第二个参数 (20) 非常随意。它应该等于(或大于)您字段中最长字符串的长度。

关于MySQL 排序 varchar 列数字,数字在前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12295571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com