Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在MySQL模式下,内存数据库中的H2按不同顺序处理_Java_Mysql_Sql Order By_Collation_H2 - Fatal编程技术网

Java 在MySQL模式下,内存数据库中的H2按不同顺序处理

Java 在MySQL模式下,内存数据库中的H2按不同顺序处理,java,mysql,sql-order-by,collation,h2,Java,Mysql,Sql Order By,Collation,H2,我有一个查询,它在包含电子邮件地址的VARCHAR列上按排序 如果我点击我的物理MySQL数据库,它会忽略ORDER BY中的大小写。然而,我的内存数据库中的h2是关于大小写的。它被设置为MySQL模式 有人知道这是为什么吗?在数据库中计算字符串时,区分大小写是由排序规则决定的 检查H2上的排序规则处理:作为使用排序规则的替代方法,您可以使用禁用区分大小写。这需要在创建表之前完成 H2的MySQL模式不区分大小写的原因是:H2中的兼容模式不会影响事物的持久化方式(否则以后无法以不同的兼容模式访问

我有一个查询,它在包含电子邮件地址的VARCHAR列上按排序

如果我点击我的物理MySQL数据库,它会忽略
ORDER BY
中的大小写。然而,我的内存数据库中的h2是关于大小写的。它被设置为MySQL模式


有人知道这是为什么吗?

在数据库中计算字符串时,区分大小写是由排序规则决定的


检查H2上的排序规则处理:

作为使用排序规则的替代方法,您可以使用禁用区分大小写。这需要在创建表之前完成


H2的MySQL模式不区分大小写的原因是:H2中的兼容模式不会影响事物的持久化方式(否则以后无法以不同的兼容模式访问数据库,或者禁用兼容模式)。区分大小写确实会影响事物的存储方式(特别是索引)。使用
VARCHAR\u IGNORECASE
而不是
VARCHAR


谢谢你,天哪。我不明白,他们是说H2支持在表或列上设置排序规则,还是说在jdbc连接上设置排序规则?似乎H2不尊重我的列(latin1)的排序规则,而是使用utf8。