MySQL字母排序技巧实现(mysql字母排序)

MySQL字母排序技巧实现

MySQL通常是用来处理大量数据的,在查询结果排序方面,使用MySQL字母排序技巧可以让结果变得更具有阅读性,本文介绍如何使用MySQL字母排序技巧实现。

MySQL里有专门的字符排序函数strcmp()和strcmp_case(),它们用来计算两个表达式的“字典序”,注意它们区分大小写。我们可以以此来对字符串进行排序,比如以下SQL语句:

SELECT * FROM people
ORDER BY strcmp(name,’Steven');

上面的语句会把所有人按照 name 对于 Steven 的“字典序”进行排序,这样就能得到一个按照字母编写顺序的查询结果。

除了用字符排序函数外,MySQL还提供了两种比较准确的排序方案。一种是UNION ALL,另一种则是ORDER BY语句。UNION ALL是一个把多个SELECT子句合并的语句,它能让排序更准确,这里以人名表为例:

SELECT name FROM people 
ORDER BY strcmp_case(name,’Steven’)
UNION ALL
SELECT name FROM people
ORDER BY strcmp_case(name,’Steven’) ASC

上面的语句就能完全按照字母顺序来排列查询结果,这里Asc 和 Des 是用来指定排序方式,ASC代表升序,Des 代表降序。

另一种排序方法则是使用 ORDER BY 语句,在字母排序中,我们可以让MySQL根据字母在字母表中的排位进行排序。MySQL提供的ORDER BY 可以为每一个字母一个数值,比如:

SELECT name FROM people 
ORDER BY (name = ‘Steven’) DESC,
ORDER BY (name >= ‘F’ ) * 3 ASC

上面的语句把结果按照 name 介于“F”和“Steven”之间的字母顺序排列。这样就不用把所有的字符逐个列出来就可以完成字母排序了,这样也不需要给出每个字符的ASCll值,更易用、也更高效。

本文就向大家介绍了如何使用MySQL字母排序技巧实现,要使用MySQL字母排序,除了使用字符排序函数外,可以通过UNION ALL和 ORDER BY来实现,这样可以让查询结果变得具有阅读性,节省时间,也更符合我们的需求。


数据运维技术 » MySQL字母排序技巧实现(mysql字母排序)