问题标签 [collation]
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.
sql-server - 实时部署时的 Sql 排序问题
历史:前几天晚上我进行了一次部署,其中涉及执行创建存储过程的脚本。但是,在运行脚本时,数据库的整理发生了错误。
问题:在我们朋友 Google 的帮助下,我设法发现我遇到的问题是因为我们的实时环境的数据库有一个排序规则,而临时 DB 的排序规则不同,我在尝试插入时遇到错误到变量表中。
问题:最好的前进方式是什么,或者我的选择是什么?
环境:sql 2000
提前致谢。
c# - SQL Server 2000 中的 VARCHAR 排序规则与 VARBINARY 排序
我需要在 C# 中将来自一个或多个 SQL Server 2000 数据库的两个排序的字符串流在内存中合并到一个排序的流中。这些数据流可能很大,所以我不想将两个流都拉到内存中。相反,我需要在内存中的每个流中一次保留一个项目,并且在每个步骤中,比较每个流中的当前项目,将最小值推送到最终流中,然后从适当的源流中提取下一个项目。但是,要正确执行此操作,内存中的比较必须与数据库的排序规则相匹配(考虑流[A,B,C]
和[A,B,C]
:正确的合并序列是[A,A,B,B,C,C]
,但如果您的内存中比较认为,您的内存中C < B
合并将产生A,A,B
它将查看 aB
和 aC
, 并将产生C
, 导致错误排序的流。)
所以,我的问题是:有没有办法用System.StringComparison
C# 中的枚举来模仿 SQL Server 2000 中的任何排序规则或反之亦然?我最接近的是使用System.StringCompaison.Ordinal
转换为VARBINARY
标准VARBINARY
排序的数据库字符串的结果,这是可行的,但我宁愿只"order by name collate X"
在我的 SQL 查询中添加一个子句,其中 X 是一些排序规则,其工作方式与VARBINARY
排序,而不是将所有字符串在VARBINARY
它们离开数据库时转换为字符串,然后在它们进入内存时转换为字符串。
sql - SQL Server 2005 排序规则问题
我有两个表,它们使用不同的排序规则。不允许连接具有不同排序规则的表中的列,例如以下 SQL 是不允许的,
我的问题是,如何在不破坏表数据的情况下更改表的排序规则?
提前谢谢,乔治
sql-server - 加入具有不同排序规则问题的列
我正在使用 SQL Server 2005。我有两个表,它们使用不同的排序规则。不允许连接具有不同排序规则的表中的列,例如以下 SQL 是不允许的,
我的问题是,为什么从数据库引擎设计的角度来看,不允许连接来自不同排序规则的两列?我不知道为什么排序规则会影响结果,结果只是连接字符串 - 应该足够简单并且不依赖于排序规则......
提前谢谢,乔治
sql - 如何以更好的方式解决排序规则冲突?
我的数据库有整理问题,我已经开发了自己的解决方案。
解决方案:
有人有其他解决方案吗?
有人可以提供一些建议来优化我的代码吗?
php - MySQL 排序规则类型是否需要匹配 PHP 页面字符集类型?
我已经开始调试我的 RSS 提要,因为它有一些奇怪的字符(即缺少字符的字形)。我从两个优秀的初学者资源开始:
- 每个软件开发人员绝对绝对必须了解 Unicode 和字符集:http ://www.joelonsoftware.com/articles/Unicode.html
- 字符集/字符编码问题:http ://www.phpwact.org/php/i18n/charsets
我认为我们的 RSS 提要有问题的原因是用户将 MS Word 文档复制并粘贴到网站上的文本区域中,而我们的 PHP 页面使用的是与特殊的“Windows-1252”不兼容的“iso-8859-1”字符集MS Word 使用的项目符号和智能引号等内容的编码。
所以我希望解决这个问题,我需要做的就是在接受/提供用户输入的页面中开始使用“utf-8”??即在 HEAD 部分设置以下内容:
不过,我提出这个问题的真正原因是因为存储用户输入的数据库字段位于“ latin1_swedish_ci
”中,我想知道是否需要将它们转换为“ utf8_general_ci
”?MySQL 并不真正关心字符集吗?它只看到一堆字节,如果我将 Unicode 放入一个整理为拉丁语的字段中,它仍然会以 Unicode 的形式出现,对吗?更改字段会很烦人,因为该字段是 FULLTEXT 索引的一部分,其中其他字段也需要更改其排序规则,这意味着删除索引并重建它(当涉及大量 TEXT 时,这不是一项小任务)。
php - “和”的MySQL / PHP问题
我使用 PHP 和 MySQL 制作了一个带有评论的简单新闻系统,它在我的本地 Apache 服务器上运行良好,无论是在我的 Fedora 10 机器上,还是在我的 Windows 7 机器上。现在我有一个问题,我把它上传到一个网络主机,它不断返回所有的'和“作为\'和\”。
我相信这要么是出于安全原因自动添加它们的网络主机,要么是 MySQL 是错误的排序规则,但我还没有能够解决它,测试多个 MySQL 排序规则。
下面是一个查询示例:
$time
istime();
$newstitle
和$newstext
are parsed from$_POST
并且两者都mysql_real_escape_string()
在我运行查询之前运行(我想这可能是问题,但由于它是安全性的一部分,我只是不想删除它,因为它没有引起问题在我的本地服务器上)
最后一点:在我的本地 apache 服务器上,我latin1_swedish_ci
在 web 主机服务器上不起作用。
编辑:
它们在数据库中看起来像这样:
而在我的本地,他们没有额外的反斜杠,所以它必须是 PHP 添加它。除了添加一个删除多余反斜杠的函数之外,有没有办法解决这个问题?
mysql - 操作“find_in_set”的排序规则(latin1_swedish_ci,COERCIBLE)和(utf8_general_ci,IMPLICIT)的非法混合
我收到以下错误:
操作“find_in_set”的排序规则(latin1_swedish_ci,COERCIBLE)和(utf8_general_ci,IMPLICIT)的非法混合
这是我试图执行的查询:
我查了这张表的属性,它有 charset utf8 和 collation utf8_general_ci。
这适用于我所有的网站,所以我不确定出了什么问题。
mysql - mysql varbinary vs varchar
我们使用 varchar(255) 在 mysql 中存储“关键字”。我们面临一个问题,mysql 忽略所有尾随空格以用于“=”中的比较目的。它确实尊重“like”比较中的尾随空格,但如果它有一个“UNIQUE”索引,它不允许我们在 varchar 列中存储带有和不带有尾随空格的相同单词。
因此,我们正在考虑切换到 varbinary。当列值中存在多字节字符时,任何人都可以建议可能会产生什么影响吗?
mysql - Mysql更改信息schema的列排序规则和字符集
我想更改系统数据库 information_schema 的列排序规则和字符集...
任何人都可以就如何做到这一点提供任何意见吗?我需要什么特殊的特权吗