我目前在名为order by
的列上使用postcodes
进行简单的MySQL选择。这些邮政编码是英国。
目前按此顺序输出:SE1, SW1, SE10, SE11, SE2, SW2, SE3
。我知道使用ABS()
会纠正数字排序,但我不确定在这种情况下我会怎么做,因为有字母和数字。
我想按以下顺序显示它们:
SE1, SE2, SE3 SE10, SE11, SW1, SW2
感谢您的帮助。
答案 0 :(得分:2)
您可以向表中添加一些额外的列以包含其中的片段,并使用第三列进行排序来返回顺序。例如:
PostCodeTable
|---------------------------------------------|
|postCode| codePart1 | codePart2 | codePart3 |
|char() | char() | int() | whatever() |
|---------------------------------------------|
| SE1 | SE | 1 | |
| SW1 | SW | 10 | |
| SE10 | SE | 10 | |
| SE11 | SE | 11 | |
| SE2 | SE | 2 | |
| SW2 | SW | 2 | |
| SE3 | SE | 3 | |
|---------------------------------------------|
您的查询可能是:
Select
postCode
from
PostCodeTable
order by
codePart1,
codePart2
// etc etc as needed.