我有一个包含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/