我只想知道这些查询语句是否区分大小写,这些查询语句是相同的吗?
SELECT * FROM Users WHERE login="john";
SELECT * FROM Users WHERE login="John";
SELECT * FROM Users WHERE login="JOHN";
SELECT * FROM Users WHERE login="jOHn";
我已在控制台上尝试过这些方法,都能正常运行,但如果我使用Hibernate或其他任何东西,我想确认一下。谢谢!
我只想知道这些查询语句是否区分大小写,这些查询语句是相同的吗?
SELECT * FROM Users WHERE login="john";
SELECT * FROM Users WHERE login="John";
SELECT * FROM Users WHERE login="JOHN";
SELECT * FROM Users WHERE login="jOHn";
utf8
和utf8_general_ci
。 在这两种情况下,_ci
表示“不区分大小写(和重音)”。 在您的查询中,这适用于列login
。 - Rick JamesLOWER()
。 - Rick James根据MariaDB文档,它取决于操作系统。对于Windows,不区分大小写。对于Linux,数据库、表、表别名和触发器名称受系统区分大小写的影响,而索引、列、列别名、存储过程和事件名称从不区分大小写。
utf8_bin
。因此,搜索区分大小写。当搜索某个值(例如europe
而不是Europe
)时,我需要执行LOWER(column_name)
操作。例如:
WHERE LOWER(comment) REGEXP 'picopsu|pico-psu'
因此,这完全取决于表的排序规则,而不是操作系统本身。 - stamster这只是来自我的Linux(Debian 10)Box在MariaDB中的一个示例(Ver.10.3.18-MariaDB-0+deb10u1)。可能对某些人有帮助!
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]>