1

我有一个带有 VARCHAR(250) cp1251_general_ci 字段的 InnoDB 表,名为comment.

我正在尝试在此字段上进行搜索,案例判断。

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'

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

4

1 回答 1

0

自我回答:

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

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

于 2014-09-12T13:17:28.143 回答