gpt4 book ai didi

Java排序与MySQL排序不一样

转载 作者:可可西里 更新时间:2023-11-01 08:27:26 37 4
gpt4 key购买 nike

我需要检查表中的排序,表内容由 MySQL 给出。我正在尝试以下操作:Collections.sort(sorted, String.CASE_INSENSITIVE_ORDER);

得到如下结果:
tes3@test.com
test4@test.com
test5@test.com
test@test.com
test_user@mail.com
user-og@driver.com

这是我通过查询从 MySQL 得到的:
SELECT 'email' FROM 'user' WHERE 1 ORDER BY 'user'.'email' ASC :

tes3@test.com
test_user@mail.com
test@test.com
test4@test.com
test5@test.com
user-og@driver.com

Java 似乎是根据 ASCII 表排序的: http://www.asciitable.com/4 (52) - @ (64) - _ (95)

但在 MySQL 中结果顺序是 _ -> @ -> 4

email字段整理为:utf8_unicode_ci
有什么问题,有没有比较器可以用同样的方式进行排序?

最佳答案

使用Collator :

The Collator class performs locale-sensitive String comparison. You use this class to build searching and sorting routines for natural language text.

代码将是:

Collator coll = Collator.getInstance(Locale.US);
coll.setStrength(Collator.IDENTICAL);
Collections.sort(words, coll);

关于Java排序与MySQL排序不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33999947/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com