【发布时间】:2016-10-04 07:47:53
【问题描述】:
我想按列的值排序,从最低到最高。但是,该列设置了前缀,因此其内容可能类似于 SR1001000。我想如果我想订购这个,我需要删除前缀。所以现在我的查询看起来像这样:
SELECT a2t_import.*,SUBSTRING(a2t_import.a2t_vare_nr, 3) as partial_vare_nr
FROM a2t_import
ORDER BY partial_vare_nr ASC`
但是我还需要只获取列具有特定前缀的行,我可以通过添加这样的正则表达式来获得该前缀
SELECT a2t_import.*,SUBSTRING(a2t_import.a2t_vare_nr, 3) as partial_vare_nr
FROM a2t_import
WHERE a2t_vare_nr REGEXP '^(SR)+[0-9]+'
ORDER BY partial_vare_nr ASC
这给了我正确的输出,上面的例子看起来像这样1001000,但排序不是我所期望的。
我得到以下输出
10002000
1001000
...
如您所见,第一行的数字明显高于第二行。这是为什么呢?
【问题讨论】:
标签: mysql substring sql-order-by