gpt4 book ai didi

mysql排序规则和分组: how to ungroup lower,大写和重音符号?

转载 作者:行者123 更新时间:2023-11-30 01:34:24 25 4
gpt4 key购买 nike

select count(answer1) as total, questionsResults.answer1 
from questionsResults
WHERE correct=1 GROUP by answer1

我的问题是,这对小写和大写进行分组,甚至删除了重音符号!

Bonjour pépé
bonjour pépé
Bonjour pepe

将全部分组在一起:它将给我 1 行,而我需要 3 行:我需要区分小写、大写甚至重音符号!

有什么线索吗?

最佳答案

来自手册

With the COLLATE clause, you can override whatever the default collation is for a comparison. COLLATE may be used in various parts of SQL statements.

此行为取决于所使用的搭配。

您需要的搭配是utf_bin。

可以直接在查询中使用COLLATE指定

select count(answer1) as total, questionsResults.answer1 
from questionsResults
WHERE correct=1 GROUP by answer1 COLLATE 'utf8_bin'

可以在此处找到文档:

http://dev.mysql.com/doc/refman/5.0/en/charset-collate.html

当然你也可以修改数据库中的搭配。

相反,可以按如下方式强制分组(这是我原来的答案,我误解了这个问题。但为了完整起见,我将保留它)

您可以在查询中使用字符串函数。

类似于:

GROUP by replace(lower(answer1),'é',e) 

如果这是法语,那么不可能有太多口音,所以这是一个解决方案。

您还可以将函数导入mysql,例如:https://github.com/falcacibar/mysql-routines-collection/blob/master/tr.func.sql (MySQL UDF实现strtr C函数)

或者您可以在插入数据之前对其进行标准化。

关于mysql排序规则和分组: how to ungroup lower,大写和重音符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17097161/

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