gpt4 book ai didi

mysql - 使用 cp1251 编码的 VARCHAR 字段上区分大小写的 LIKE

转载 作者:行者123 更新时间:2023-11-30 22:57:09 28 4
gpt4 key购买 nike

我有一个 InnoDB 表,其中包含名为 comment 的 VARCHAR(250) cp1251_general_ci 字段。

我正在尝试搜索此字段,区分大小写。

SELECT comment
FROM body_legend
WHERE comment LIKE '%ТТ%'
GROUP BY comment

按预期工作,但不区分大小写。

我尝试像这样使用BINARY

SELECT comment
FROM body_legend
WHERE comment LIKE BINARY '%ТТ%'
GROUP BY comment`

它返回一个空结果。

我尝试像这样使用COLLATE

SELECT comment
FROM body_legend
WHERE comment LIKE '%ТТ%' COLLATE cp1251_general_ci

返回错误

 COLLATION 'cp1251_general_ci' is not valid for CHARACTER SET 'utf8mb4'

如何使搜索区分大小写?如果答案辅以对为什么我的查询不起作用的描述,我会很高兴。

最佳答案

self 回答:

SELECT comment
FROM body_legend
WHERE comment
LIKE BINARY CONVERT( '%ТТ%' USING cp1251);

看来,如果我在 phpMyAdmin 中编写此查询,它被读取为 utf8,并且与 cp1251 表中的值进行按位比较,当然是不一样的。

关于mysql - 使用 cp1251 编码的 VARCHAR 字段上区分大小写的 LIKE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25807319/

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