MySQL 如何在MySQL中使用ORDER BY对最后2个字符的字符串排序?


<!–

–>

MySQL 如何在MySQL中使用ORDER BY对最后2个字符的字符串排序?

在MySQL中,我们可能需要对结果集按照某个字段进行排序。而在某些场景下,我们需要对字符的末尾两个字符进行排序。那么,该怎么做呢?

阅读更多:

解决方案

MySQL提供了一种内建的函数——SUBSTR(),它可以从一个字符串中返回子串。我们可以使用这个函数来提取我们想要比较的末尾两个字符,再使用ORDER BY对这个子串进行排序。

(adsbygoogle = window.adsbygoogle || []).push({});

示例代码如下(语言为):

SELECT name FROM my_table
ORDER BY SUBSTR(name, -2);

这条语句会按照name字段的末尾两个字符进行升序排序,也就是说,排在最前面的记录是最小的。如果想要使用降序排序,可以在末尾加上DESC关键字。

SELECT name FROM my_table
ORDER BY SUBSTR(name, -2) DESC;

注意事项

值得注意的是,如果你的数据集中有长度小于2的记录时,这种排序有可能无法正常工作。可能会因为取子串越界而报错。所以,在使用这种排序时,务必要确保处理的字符串都至少有两个字符。

结论

在MySQL中,可以使用SUBSTR()函数取出一个字符串的末尾两个字符,再使用ORDER BY对这个子串进行排序。但是,当数据集中存在长度小于2的记录时,需要进行额外的判断处理,以避免越界导致的错误。