doumen5895 2012-03-28 17:59
浏览 70

MySQL排序英国邮政编码

I currently have a simple MySQL select with an order by on a column called postcodes. These postcodes are UK.

It is currently outputting in this order: SE1, SW1, SE10, SE11, SE2, SW2, SE3. I know using ABS() would correct the number ordering, but I'm not sure how I would do it in this case because there are letters as well as numbers.

I would like to display them in the following order:
SE1, SE2, SE3 SE10, SE11, SW1, SW2

Thanks for any help.

  • 写回答

1条回答 默认 最新

  • duanrang9348 2012-07-07 10:04
    关注

    You could add a few extra columns to the table to contain the snippets within them and return the order by using the tertiary columns to sort by. For example:

    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         |            |
    |---------------------------------------------|
    

    Your query might be:

    Select
        postCode
    from
        PostCodeTable
    order by
        codePart1,
        codePart2
        // etc etc as needed.
    
    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看