MariaDB / MySQL查询区分大小写?

时间:2016-07-01 22:38:12

标签: mysql hibernate case mariadb

我只是想知道这些查询是否区分大小写。这些问题是一样的吗?

      ACCT DT                  TYPE    FIXED_TYPE
---------- ------------------- ------- ----------
         1 2016-01-01 00:00:00 Data1   Data1      
         1 2016-02-01 00:00:00 UNKNOWN Data1      
         1 2016-03-01 00:00:00         Data1      
         2 2016-04-01 00:00:00 Data2   Data2      
         2 2016-05-01 00:00:00         Data2      
         2 2016-06-01 00:00:00         Data2      
         2 2016-07-01 00:00:00 Data3   Data3      
         3 2016-02-01 00:00:00 UNKNOWN Data4      
         3 2016-03-01 00:00:00 UNKNOWN Data4      
         3 2016-04-01 00:00:00 Data4   Data4      

我已经在我的控制台上尝试过了,并且所有这些都有效,但我想确定如果我会使用Hibernate或其他任何东西。

谢谢!

3 个答案:

答案 0 :(得分:1)

根据the MySQL docs

  

默认字符集和排序规则是latin1和   latin1_swedish_ci,所以非二进制字符串比较就是这种情况   默认不敏感

至于问题的第二部分 - this SO answer向您展示如何配置让搜索者区分大小写。

答案 1 :(得分:1)

这只是我在MariaDB(版本10.3.18-MariaDB-0 + deb10u1)中的Linux(Debian 10)框中的示例。对某人可能会有帮助!

MariaDB [niffdb]> select * from account_heads where head_desc="Fuel";
+---------+-----------+
| head_id | head_desc |
+---------+-----------+
|       1 | Fuel      |
+---------+-----------+
1 row in set (0.004 sec)

MariaDB [niffdb]> select * from account_heads where head_desc="FUEL";
+---------+-----------+
| head_id | head_desc |
+---------+-----------+
|       1 | Fuel      |
+---------+-----------+
1 row in set (0.001 sec)

MariaDB [niffdb]> select * from account_heads where head_desc="fUEL";
+---------+-----------+
| head_id | head_desc |
+---------+-----------+
|       1 | Fuel      |
+---------+-----------+
1 row in set (0.001 sec)

MariaDB [niffdb]>

答案 2 :(得分:0)

MariaDB docs起,它取决于操作系统。对于Windows,它不区分大小写。对于Linux,数据库,表,表别名和触发器名称受系统区分大小写的影响,而索引,列,列别名,存储的例程和事件名称从不区分大小写。