MySQL中不区分大小写的顺序字符串

MySQL中不区分大小写的顺序字符串,mysql,sql,sql-order-by,case-insensitive,Mysql,Sql,Sql Order By,Case Insensitive,在MySQL RDBMS中,我如何排序username列值,而不考虑区分大小写 表结构和数据: ╔══════╦════════════╦════════╗ ║ 身份证件║ 用户名║ 名称║ ╠══════╬════════════╬════════╣ ║ 1.║ 亚当║ 试验║ ║ 2.║ 本║ 测试1║ ║ 3.║ 阿隆║ 测试2║ ║ 4.║ 查尔斯║ 测试3║ ╚══════╩════════════╩════════╝ 预期结果:

在MySQL RDBMS中,我如何排序
username
列值,而不考虑区分大小写

表结构和数据:

╔══════╦════════════╦════════╗
║  身份证件║  用户名║  名称║
╠══════╬════════════╬════════╣
║    1.║   亚当║  试验║
║    2.║   本║  测试1║
║    3.║   阿隆║  测试2║
║    4.║   查尔斯║  测试3║
╚══════╩════════════╩════════╝
预期结果:

╔══════╦════════════╗
║  身份证件║  用户名║
╠══════╬════════════╣
║    1.║   亚当║ 
║    2.║   阿隆║  
║    3.║   本║  
║    4.║   查尔斯║ 
╚══════╩════════════╝

您可以在
order by
子句中将
用户名
格式化为大写或小写,如下所示:

order by lower(username)

区分大小写有两种解决方案

  • 首先是使用
    COLLATE
    选项:

     SELECT * FROM table_name ORDER BY username COLLATE `latin1_general_ci`;
    
  • MySQL查询不区分大小写的ORDER BY是在字段名中添加
    LOWER()

     SELECT * FROM table_name ORDER BY LOWER(username);
    

只需按用户名排序即可。@AbhikChakraborty这取决于表的排序规则。感谢您的回复。我尝试了按用户名排序,但没有成功。是的,正如@Barmar所指出的,这取决于表的排序规则,因为
latin1\u swedish\u ci
这应该有效。但在其他排序的情况下,它可能会失败。您可以通过运行以下命令来检查表排序规则
show table status where name='your_table_name'
是的,我尝试了ORDER by CONVERT(用户名使用拉丁语2),结果成功了。谢谢