例如,我的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的帖子,但它只有一个固定的模式。
答案 0 :(得分:0)
列的内容按varchar排序。 我建议你把字符串分成两列。 (C1 = Varchar // C2 =数字) f.ex: R1C1:项目 R1C2:1 R2C1:项目 R2C2:10 等等。
之后你可以通过C2订购。
另一个解决方案是用正则表达式分割C1的内容,然后按正则表达式的结果排序。