如果 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 之后的任何内容都将被忽略(带有警告,这是无害的)。
我认为这是不可能的,但我更愿意询问社区。
我在 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 之后的任何内容都将被忽略(带有警告,这是无害的)。