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

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

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

阅读更多:MySQL 教程

解决方案

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

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

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的记录时,需要进行额外的判断处理,以避免越界导致的错误。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程