mysql以非模式字符串顺序排列,最后是数字

时间:2015-06-16 10:53:02

标签: mysql sql string

例如,我的table1列的名称为“Column1”,它的ff值为item 1, item 2, item 10, old item 3.5, old item 20.1 当我使用SELECT Column1 FROM table1 ORDER BY Column1 ASC时,结果是:

-----------------
|Column1        |
-----------------
| item 1        |
| item 10       |
| item 2        |
| old item 20.1 |
| old item 3.5  |

有没有办法让我这样做?

-----------------
|Column1        |
-----------------
| item 1        |
| item 2        |
| item 10       |
| old item 3.5  |
| old item 20.1 |

我看到来自MySQL order by string with numbers的帖子,但它只有一个固定的模式。

1 个答案:

答案 0 :(得分:0)

列的内容按varchar排序。 我建议你把字符串分成两列。 (C1 = Varchar // C2 =数字) f.ex: R1C1:项目 R1C2:1 R2C1:项目 R2C2:10 等等。

之后你可以通过C2订购。

另一个解决方案是用正则表达式分割C1的内容,然后按正则表达式的结果排序。