我有一个包含id(tID)的表,它的开头是一个“w”,后面是一个数字(int)、一个点和另一个数字(int)。
样品编号:

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查询中可能吗?

最佳答案

是的,有可能。但您应该考虑只存储两个整数,而不存储w并将其存储在两列中。
同时,您可以使用:

ORDER BY
    CAST(SUBSTRING_INDEX(REPLACE(tID, 'w', ''), '.', 1) AS SIGNED INT)
  , CAST(SUBSTRING_INDEX(tID, '.', -1) AS SIGNED INT)

关于mysql - MYSQL高级排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9873093/

10-12 02:54