我有一个充满 id (tID) 的表,这些表的开头是“w”,后跟一个数字 (int)、一个点和另一个数字 (int)。
sample 编号:
w1.3, w1.12, w1.1, w1.1, w2.10, w2.4
当我使用 ORDER BY tID
时,返回的数组是
w1.1, w1.12, w1.2, w1.3, w2.10, w2.4.
我愿意这样
w1.1, w1.2, w1.3, w1.12, w2.4, w2.10
这在 MYSQL 查询中可能吗?
最佳答案
是的,这是可能的。但是你应该考虑只存储 2 个整数,没有 w
并且在 2 列中。
同时,你可以使用这个:
ORDER BY
CAST(SUBSTRING_INDEX(REPLACE(tID, 'w', ''), '.', 1) AS SIGNED INT)
, CAST(SUBSTRING_INDEX(tID, '.', -1) AS SIGNED INT)
关于MYSQL高级排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9873093/