问题标签 [collate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
114 浏览

mysql - 如何使用 utf_unicode_ci 处理区分大小写的列

我有一个使用utf_unicode_ci的 mysql 数据库(不区分大小写)

但在一种特殊情况下,一个表的一列我需要保存区分大小写的唯一字符串(例如:iX3hR0)

在这种情况下,正确的解决方案是仅在 utf8_bin 中更改此列???(并将数据库的其余部分保留为 CHARACTER SET utf8 COLLATE utf8_unicode_ci)

还是有更好的方法?这种方法会影响性能吗?

编辑: 我知道我可以使用“WHERE BINARY Name='vaLuE'”,但我需要将区分大小写的字符串作为唯一的存储在数据库中

0 投票
1 回答
104 浏览

mysql - MySQL Collat​​e 查询永远运行

我在 MySQL 中有一个特定的查询,它使用 collat​​e 比较来自两个不同表(索引)的值,但这不会执行几个小时。查询如下:

仅供参考 elig_temp 表有 70k 条记录,而 med_temp 有 100 万条记录。
此外,table_elig 和 table_med 表的 id 字段是同一个表中另一个字段的哈希加密值。因此,我也尝试使用二进制排序规则技术,例如 udf8_bin 和 latin1_bin 来使查询运行,但我又被卡住了。

我什至尝试使用与查询一起使用的相同排序技术来定义 table_med 和 table_elig 的每个字段(varchar 和 char),但没有运气。

请向我建议任何可能的解决方案,以有效地执行此查询时间。

0 投票
2 回答
3717 浏览

python - SQLITE 自定义 Accent 排序规则和 LIKE 查询

我在 Python3 中创建了这个 NOACCENT COLLATION,以便在我正在尝试编写的 sqlite 数据库程序中使用它。

我的目标是使带重音的人声搜索不敏感,并使数据输入对重音也不敏感,这样(即)如果该表字段中已经存在“Gonzalez”值,则不会承认“Gonzalez”值。

我所做的对第二部分(限制值)和完整的值搜索很有效。我无法使它适用于 SELECT ... LIKE 表达式。我知道 SQLite 中 COLLATE NOCASE 对 az, AZ 中的 unicode 字符的 LIKE 限制,但是为什么当我使用自己定义的排序规则 NOACCENT 时该限制适用?因为看起来就是这样。

例子:

如果我做:

我得到:

什么好。这适用于大写和小写的任何组合以及单词的任何声音中的任何重音('ALBERTÓ','Älbèrtô'......)

如果我尝试插入值“ALBERTÓ”,由于唯一约束,我会收到一个错误,所以这很好用。

问题是当我尝试使用 LIKE 表达式时:

返回:

没有重音的值。

数据库本身是否有任何解决方案,或者我必须通过软件进行部分搜索(即“阿尔伯特”)。

希望我的问题足够清楚。

提前致谢。


0 投票
0 回答
546 浏览

sql - 问题更改排序规则所有(第二部分)对象''依赖于列''。(SQL 2008)

朋友们。

在(上一篇文章)中,我们试图改变所有数据库和表等的排序。

这就是我所做的:

它会告诉我这样的事情:

这将遍历所有数据库和所有表。这就是我要的。

但我有时会发现这个错误:

消息 5074,级别 16,状态 1,第 112 行对象“IX_CTTrace_Unique”依赖于列“TraceName”。消息 4922,级别 16,状态 9,第 112 行 ALTER TABLE ALTER COLUMN TraceName 失败,因为一个或多个对象访问此列。

我怎么能打这个?因为有很多这样的消息,我们有数百个操作系统数据库和表以及 Pks...

这是胜利的最后一条线!!我的老板终于会说“嘿……干得好,我的朋友……”

我找到了这个答案:

啊,这是 SQL Server 中最严重的问题之一:一旦创建了对象,就无法更改排序规则(对于表和数据库都是如此……)。您只能保存数据(不要使用 bcp 或备份实用程序,您需要将它们放在类似文件类型的 csv 中......),删除数据库,使用正确的排序规则重新创建并将数据重新导入到新数据库...希望这会有所帮助,再见 cghersi

我不想放弃。2 个月的 DBA,我想变得很棒。

谢谢朋友 !

0 投票
2 回答
121 浏览

php - 使用在 PHP 中创建表

我的数据库中的表中有一些来自捷克字母表的不寻常字母,如ěščřžýáíé 忽略我的查询。我认为它可以通过 CHARACTER SET utf8 COLLATE utf8_czech_ci 解决,但看起来我不知道如何使用它。我正在尝试此代码,但可以肯定的是,存在一些问题:

我必须在 PHP 代码中创建表,因为它依赖于另一个变量。浏览器显示“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取在 'id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), title VARCHAR(30), ' 附近使用的正确语法第 2 行”。

知道如何解决吗?

0 投票
0 回答
154 浏览

pdo - 使用重音 PDO 进行查询时出现问题

我有以下问题:
我创建了以下数据库和表:

我制作了一个批处理文件(.sql)来加载内容:

我通过phpmyadmin检查过,没问题

对于我的 WebService,我的 PDO 启动是:

我还在 PDO 中从我的网络进行查询 (SELECT *) 并显示正常。

当我添加 WHERE 子句时,仅适用于 $value='Entrada' 但不适用于 $value='Saída'。

使用 $value='Saída' 返回 EMPTY。

我知道这听起来像是一个整理问题,但我没有问题使用 PDO 插入重音或包含重音的返回问题(SELECT * 返回值 Saída 没有问题)。

有什么建议吗?我浏览了整个互联网,只发现有关 exibition 问题或不完整插入的问题,但没有发现查询问题。

提前致谢!

0 投票
1 回答
1732 浏览

sql - 同一数据库内的排序规则冲突

我对两个查询执行联合。简化版如下所示:

两个表都在同一个数据库中。但是,我收到以下错误:

我希望在不同数据库上操作时出现排序规则错误,而不是在查询同一数据库中的两个表时。

我检查了两个表的属性,在这两种情况下,排序规则都是Latin1_General_CI_AS. 但是,当两个选择地址同一个表时,我没有收到任何错误。显然,单独运行时,两个选择都起作用。

我在 SQL Server 上。有什么建议可能是问题的根源吗?

0 投票
1 回答
107 浏览

mysql - MySQL 区分大小写的搜索二进制或整理

我需要对数据库中的字段进行区分大小写的搜索。我看到有人建议使用二进制方法。

其他人正在使用 Collat​​e 方法

我不确定要使用哪一个?更好的方法是什么?

0 投票
1 回答
4276 浏览

mysql - SQL 将列从 Latin1 转换为 UTF8

我正在尝试将我的数据库上表中的特定列从带有排序规则 latin1_swedish_ci 的 latin1 字符集转换为带有排序规则 utf8_unicode_ci 的 utf8。

COLUMN:描述,类型:longtext,默认不为空

我在列上尝试了以下命令:

我还尝试更改编码而不先更改为二进制。但是这些字符最终被服务器错误地重新编码。

并且不断收到有关某些字符的错误:

错误代码:1366。不正确的字符串值:第 803 行的列 'longDesc' 的 '\x92t hav...'

我表中的某些字符似乎没有正确转换。

我该如何解决这个问题?

0 投票
0 回答
330 浏览

sql - 将带有 COLLATE 的 SQL Server 连接转换为 Oracle

我有一段这样的 SQL Server 代码:

如何重写它以在 Oracle 中工作?

我已经咨询了几个像这里这样的地方,但我对如何将通配符搜索转换为连接查询有点困惑。