MySQL中不区分大小写的顺序字符串
在MySQL RDBMS中,我如何排序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║ ╚══════╩════════════╩════════╝ 预期结果:
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);
latin1\u swedish\u ci
这应该有效。但在其他排序的情况下,它可能会失败。您可以通过运行以下命令来检查表排序规则show table status where name='your_table_name'
是的,我尝试了ORDER by CONVERT(用户名使用拉丁语2),结果成功了。谢谢