java对mysql排序_Java排序与MySQL排序不同

bd96500e110b49cbb3cd949968f18be7.png

I need to check the sorting in the table and table content is given by MySQL. I'm using the following row to sort the list:

Collections.sort(sorted, String.CASE_INSENSITIVE_ORDER);

And get the following result:

tes3@test.com

test4@test.com

test5@test.com

test@test.com

test_user@mail.com

user-og@driver.com

And this is what I get from MySQL by query:

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

As you can see, the order is not the same.

Seems that Java sorts according to ASCII table:

http://www.asciitable.com/

4 (52) - @ (64) - _ (95)

But in MySQL result the order is _ -> @ -> 4

The email field collation is: utf8_unicode_ci

What is the problem and is there any comparator to make ordering in the same way?

解决方案

Use [Collator][1]:

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

And code will be:

Collator coll = Collator.getInstance(Locale.US);

coll.setStrength(Collator.IDENTICAL);

Collections.sort(words, coll);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统需要提供基础的列车信息查询: 根据车次查询列车是否正常运行,以及查看列车的基本信息(如列车类型,始发站,终点站,开车时间,到达时间,运行时间,车厢数等等) 根据车次,查询列车经停站信息(包含这趟列车每一个经停车站的车站名,到达时间,开车时间,运行时间等信息) 系统需要提供根据车次查询列车详细信息的功能: 根据始发站和终点站,查询可以满足自己行程要求并且正常运行的列车(可以根据开车时或者运行时间进行排序),并且可以进一步查看间经过的的车站信息,以及开车时间,到达时间等。 系统需要提供接续换乘一次的查询,根据输入的出发站和终点站,可以查询换乘一次满足条件的列车,并且可以根据开车时间或总运行时间进行排序。 车票购买 在查询到符合自己出行条件的列车后,可以查询列车的剩余座位以及购买车票。 首先添加乘客(添加需要购买车票的乘客)——>进行座位选择(为每一位乘客选择座位)——>订单支付——>购票成功 接续换乘车票购买流程类似,只不过在选座时,需要选择两趟列车的座位。 系统需要提供用户的个人信息修改功能以及修改密码功能。 用户可以给除自己以外别的乘客购买车票,所以提供添加乘客的功能,每个用户下都可以添加多个乘客,从而为别的乘客购买车票。 系统提供订单的查询功能,可以查询到与自己有关的所有订单,比如所有订单,未支付订单,未出行订单。 未支付订单针对下单但是没有支付的订单,可以在规定的时间内进行支付操作,如果在规定时间内没有完成操作,则订单会作废,变成未完成支付的订单。 未出行订单针对已经支付但是没有出行的订单,可以在未出行订单查看自己的出行计划。未出行订单可以进行改签操作,改签相同出发站和终点站的其他列车。 未出行订单还可以进行退票操作,从而取消订单。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值