gpt4 book ai didi

mysql - 在 MySQL 中强制区分大小写的问题

转载 作者:搜寻专家 更新时间:2023-10-30 22:25:20 25 4
gpt4 key购买 nike

我知道 MySQL 默认不区分大小写。我还阅读了有关使用排序规则 utf8_general_cs 启用区分大小写的信息。但是我收到一条错误消息,指出未识别排序规则。此外,当我查询 charset utf8 的排序规则时,结果集仅显示与 ci 相关的排序规则。所以第 1 个问题是,我们是否需要配置与 cs 相关的排序规则?如果是这样,那么我想要一些指导。或者它是否依赖于某些特定的数据库引擎?

我还阅读了有关使用 utf8_bin 排序规则使 MySQL 查询搜索区分大小写的信息。我这样做了。将架构排序规则设置为 utf8_bin。但它没有用。还重新启动了 MySQL 服务以确保排序规则已更新。但是,当我做一个

 Select * from table where name like 'el%';

它给出的名称也以“EL”开头。

注意:我最好寻找在数据库级别设置排序规则的选项。MySQL 服务器版本 5.6.x

最佳答案

列排序规则优先于数据库和表排序规则。如果您一直在进行更改,则您的列当前可能使用的是创建表时的默认值。您应该能够使用适当的 SQL 工具或通过运行来发现它:

SELECT table_schema, column_name, collation_name
FROM information_schema.columns
WHERE table_schema = 'your database name'
AND table_name = 'your table name'

如果您不愿意更改列排序规则,可以在表达式级别进行设置:

SELECT *
FROM foo
WHERE bar LIKE 'el%' COLLATE utf8mb4_0900_as_cs;

(演示)

归类会影响排序和字符比较,因此您必须 read some docs找出最适合您需求的一个(如果您不是 Unicode 极客,这并不简单)。

我的项目都是西类牙语,所以我倾向于大量使用 utf8mb4_spanish_ci ;-)

关于mysql - 在 MySQL 中强制区分大小写的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53088323/

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