社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

FilmJ

FilmJ 最近创建的主题
FilmJ 最近回复了
13 年前
回复了 FilmJ 创建的主题 » 在mysql中,如何在没有前导零的情况下排序数字

所以,虽然我知道你已经找到了一个令人满意的答案,但我在这个问题上挣扎了一段时间,我们之前已经确定在SQL中做得不太好,我们将不得不在JSON数组上使用javascript。

下面是我如何使用SQL解决这个问题的。希望这对其他人有帮助:

我有如下数据:

Scene 1
Scene 1A
Scene 1B
Scene 2A
Scene 3
...
Scene 101
Scene XXA1
Scene XXA2

事实上,我并没有“铸造”东西,尽管我认为这可能也有用。

我首先替换了数据中不变的部分,在本例中是“场景”,然后做了一个LPAD来排列。这似乎可以很好地让alpha字符串与编号字符串一样正确排序。

我的 ORDER BY 条款看起来像:

ORDER BY LPAD(REPLACE(`table`.`column`,'Scene ',''),10,'0')

显然,这无助于解决最初的问题,因为这个问题并不统一——但我想这可能适用于许多其他相关的问题,所以把它放在那里。