当前位置: 首页 > 知识库问答 >
问题:

在mysql中使用order by子句按字母顺序排序小写字母和大写字母的字符串

陈和裕
2023-03-14

我使用的是mySQL和排序规则utf8mb4\u general\u ci

我尝试了以下查询:SELECT cid,cname from cust1 order by cname desc

结果是:

cid  cname     
3 bbb 
1 abc 
2 ABC 

是否在上面的排序规则中设置了这种排序类型(小写字母按降序排列)?

另外,如果我运行以下查询:SELECT cid,cname from cust1 order by cname

结果是:

cid  cname     
1 abc 
2 ABC 
3 bbb 

再次以升序排列,小字母排在第一位。我不明白。请给我解释一下。

如何更改数据库排序规则?

共有3个答案

平庆
2023-03-14

MySQL已经_ci排序规则。正如“ci”提示的那样,这些是不区分大小写的。也就是说,a=a。(_ci也会去除口音。)

MySQL已经_bin排序规则。这些比较位。因此aa不同。

方案A:在该列上使用校对utf8mb4_-bin

计划B:ORDER BY cname DESC,id DESCORDER BY cname ASC,id ASC。这样,id将强制执行第1行和第2行的一致顺序。(它不会强制执行aA之间的顺序。

方案C:按cname描述订购,cname校对utf8mb4_bin描述。(我尚未验证此语法是否有效。)这应该以可预测的方式排列“a”和“a”。

赵雅懿
2023-03-14

在数据库排序中:a大于a a大于b对于同一个字母,b大于b,较小的字母大于大写字母。

郑景胜
2023-03-14

MySQL正在输出它遇到的第一个条目,因为在本例中,它认为“ABC”与“ABC”相同。

您可以尝试使用ascii()函数,比如“order by cname desc,ascii(cname)desc”。

我认为你可以通过如下方式使用alter table来改变字符排序:“alter table cust1 character set latin1 collate latin1_swedish_ci”,或者任何你想要的字符集。

 类似资料:
  • 问题内容: 如何仅使用CSS将以下每个句子的大写字母转换为小写和首字母大写? 来自: 这是一个例句。 收件人: 这是一个例句。 更新: 当我使用文本转换时:大写;结果还是一样。 问题答案: CSS中没有句子大写选项。其他答案表明是不正确的,因为该选项将 每个单词 都大写。 如果您只希望 每个元素* 的 首字母 大写,则这是一种 粗略的 实现方式,但是与实际的句子大写绝对不符: *

  • 我正在尝试使用正则表达式将大写字母替换为相应的小写字母。因此 变成 在Sublime的文本中。如何在同时包含小写和大写字母的单词中使用小写字母?所以它会影响维纳斯,而不是维纳斯。

  • 问题内容: 我有一个包含人名的字符串arraylist 。我想按字母顺序对arraylist进行排序。 我试图以上述方式对列表进行排序。但是它将排序后的数组显示为: 但我不想使其区分大小写。我想要的结果是: 问题答案: 自定义应该有帮助 或者,如果你使用的是Java 8:

  • 问题内容: THIS IS SOMETEXT 我想使该段的首字母大写。 CSS可能吗? 编辑: 我所有的文本都用大写字母。 问题答案: 您可以使用以使段落的每个单词都大写,如下所示: 在 IE4 +中受支持。 这里的例子 。 [16.5大写:“文本转换”属性] 此属性控制元素文本的大写效果。 将每个单词的第一个字符大写;其他字符不受影响。 将每个单词都用大写字母大写: 在此假设下: 我想使它看起来

  • 问题内容: 我是Java的新手,正在尝试按字母顺序排列术语的arrayList。(一个术语定义为一个字符和一个整数)(例如 我的代码如下: 为什么这不起作用?以及我该如何完成呢?我的arrayList称为术语,填充有Term类型 问题答案: 您在这行代码中遇到的问题。您的课程不是So 的类型,这两个对象将基于哪个属性或条件方法? 您必须使您的类为Comparable类型。和,根据您的需要覆盖该方法

  • 问题内容: 有没有一种简单的方法可以在Python中按字母顺序对字符串中的字母进行排序? 因此对于: 我想返回: 问题答案: 你可以做: