如果 MySQL 列包含字符“(”、“/”和“)”,则将其排序为数字

Sort MySQL colum as number if it includes characters '(' , '/' and ')'

我认为这是不可能的,但我更愿意询问社区。

我在 MySQL 中有一个类型为 varchar 的列,其中存储了数字和字符,例如“(”、“/”和“)”。

存储的数据对应一个数字顺序,例如:

1
2 (1/2), 2 (2/2)
3
4
5 (1/3), 5 (2/3), 5 (3/3)
...

显然,如果我通过 ORDER BY 'mycol' ASC 对这个字符串进行排序,1,10,11,12, .., 2,20 首先出现,我希望它被排序为 INT 但我不能执行 CAST,因为有字符“(”、“/”和“)”。

这可以在 MySQL 中排序吗?

你可以这样做:

ORDER BY mycol+0 ASC

space 之后的任何内容都将被忽略(带有警告,这是无害的)。