gpt4 book ai didi

mysql - 如何在 Drupal 中对带有变音符号的文本进行 MySQL 查询?

转载 作者:行者123 更新时间:2023-11-29 01:47:16 25 4
gpt4 key购买 nike

我需要区分以“O”开头的节点和以“Ö”(o 元音变音)开头的节点。

问题在于,由于节点表和标题列具有 utf8_general_ci 排序规则,MYSQL 不会区别对待 o 和 ö 变音符号,并且此查询返回以 O 开头的节点和以 Ö 开头的节点

SELECT node.nid AS nid
FROM 节点 AS 节点
WHERE 节点状态 <> 0
AND SUBSTR( node.title, 1, 1 ) = 'O'

由于所有 Drupal 模块都使用 utf8_general_ci 排序规则,我想更改表和整个数据库的排序规则可能不是一个好主意。

对此有什么好的解决方法?

最佳答案

您可以使用与列正在使用的排序规则不同的排序规则进行比较:

mysql> SELECT 'foo'='föo' COLLATE 'utf8_general_ci';
1
mysql> SELECT 'foo'='föo' COLLATE 'utf8_swedish_ci';
0

(oö 是瑞典语排序规则中的不同字母。如果您不想要 ,也可以使用 utf8_bin任何要匹配的不同字符,甚至是同一字母的不同大小写。)

然而,对排序规则与每列的排序规则不同的列进行比较意味着无法使用索引。因此,简单地将表 ALTER 为您想要的更具体的排序规则可能会更有效。

关于mysql - 如何在 Drupal 中对带有变音符号的文本进行 MySQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3735139/

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