标签: collation

使用二进制排序规则有什么影响?

在回答这个问题时,我对某些我无法找到足够答案的事情感到不确定.

使用二进制文件utf8_bin和不区分大小写的utf8_general_ci排序规则之间有什么实际区别?

我可以看到三个:

  1. 两者都有不同的排序顺序; _bin排序顺序可能会将任何变音符号放在字母表的末尾,因为字节值会被比较(对吗?)

  2. 只有区分大小写的搜索 _bin

  3. 没有A = Ä平等_bin

是否还有其他差异或副作用需要注意?

参考:

类似的问题没有解决这个问题:

mysql collation

45
推荐指数
2
解决办法
2万
查看次数

查询以显示所有表及其排序规则

是否有可以在mysql中运行的查询,显示所有表及其默认排序规则?如果有的话可以更好地显示所有表的所有列上的所有排序规则.

mysql schema collation

44
推荐指数
3
解决办法
3万
查看次数

MySql中非法混合排序错误

刚刚从上一个问题得到了这个答案,它有效!

SELECT username, (SUM(rating)/COUNT(*)) as TheAverage, Count(*) as TheCount 
FROM ratings WHERE month='Aug' GROUP BY username HAVING TheCount > 4
ORDER BY TheAverage DESC, TheCount DESC
Run Code Online (Sandbox Code Playgroud)

但当我坚持这个额外的位时,会出现这个错误:

文档#1267 - 操作'='的非法混合排序(latin1_swedish_ci,IMPLICIT)和(latin1_general_ci,IMPLICIT)

SELECT username, (SUM(rating)/COUNT(*)) as TheAverage, Count(*) as TheCount FROM 
ratings WHERE month='Aug' 
**AND username IN (SELECT username FROM users WHERE gender =1)**
GROUP BY username HAVING TheCount > 4 ORDER BY TheAverage DESC, TheCount DESC
Run Code Online (Sandbox Code Playgroud)

该表是:

id, username, rating, month

mysql collation mysql-error-1267

41
推荐指数
4
解决办法
10万
查看次数

无法解决整理冲突

我已将我们的一个数据库(DB1)从SQL Server 2008移动到2012年,当我运行存储过程时,我收到以下错误

在等于操作中无法解决"SQL_Latin1_General_CP1_CI_AS"和"Latin1_General_CI_AS"之间的排序规则冲突

我使用了更改了数据库的排序规则

ALTER DATABASE [optimiser] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE [optimiser] COLLATE SQL_Latin1_General_CP1_CI_AS
ALTER DATABASE [optimiser] SET MULTI_USER
Run Code Online (Sandbox Code Playgroud)

但是每当存储过程运行时我仍然会收到错误.我相信因为SP正在使用连接到另一个数据库(GE的ihistorian)并且它具有排序规则不匹配.无论如何要解决这个问题.

在旧服务器DB1设置为Latin1_General_CI_AS,这工作正常.DB的新位置具有默认值SQL_Latin1_General_CP1_CI_AS.是否值得将新服务器上的排序规则更改为DB1返回Latin1_General_CI_AS

sql sql-server collation sql-server-2008 sql-server-2012

41
推荐指数
1
解决办法
14万
查看次数

发现MySQL列的排序规则

我之前创建了一个MySQL表,现在我想找出一些字段正在使用的排序规则.我可以使用哪些SQL或MySQL命令来发现它?

mysql collation

39
推荐指数
2
解决办法
2万
查看次数

将SQL Server排序规则更改为区分大小写不区分大小写?

我最近安装了SQL Server 2008,并选择了排序规则作为区分大小写.我想让它对整个实例不区分大小写(不适用于该实例中的数据库).如果我更改了排序规则,它是否会影响任何现有数据库?如果真是这样,那么是以哪种方式?

sql-server collation sql-server-2008

36
推荐指数
1
解决办法
10万
查看次数

在MySQL中,我应该选择哪种排序规则?

当我通过phpMyAdmin创建一个新的MySQL数据库时,我可以选择排序规则(例如-default,armscii8,ascii,...和UTF-8).我知道的是UTF-8,因为我总是在HTML源代码中看到这一点.但是默认排序规则是什么?这些选择之间有什么区别,我应该使用哪一个?

mysql collation

35
推荐指数
3
解决办法
4万
查看次数

utf8_bin与utf_unicode_ci

我的表网站

Website_Name//column name
Google
Facebook
Twitter
Orkut
Frype
Skype
Yahoo
Wikipedia
Run Code Online (Sandbox Code Playgroud)

我使用utf8_bin collat​​ion然后我的查询在网站搜索维基百科是

Select Website_Name from Website where lower(Website_Name)='wikipedia'
Run Code Online (Sandbox Code Playgroud)

如果我使用utf8_unicode_ci然后我的选择查询在网站搜索维基百科是

Select Website_Name from Website where Website_Name='wikipedia'
Run Code Online (Sandbox Code Playgroud)

现在我想知道哪种排序规则最好,具体取决于以下查询

mysql database collation relation

34
推荐指数
3
解决办法
4万
查看次数

如何将整理更改为数据库的所有列?

我想更改数据库的所有表的所有列的排序规则.在堆栈溢出的其他帖子中我发现了这个脚本:( 发布)

SELECT 'ALTER TABLE [' + SYSOBJECTS.Name + '] ALTER COLUMN [' + SYSCOLUMNS.Name + '] ' +
SYSTYPES.name + 
    CASE systypes.NAME
    WHEN 'text' THEN ' '
    ELSE
    '(' + RTRIM(CASE SYSCOLUMNS.length
    WHEN -1 THEN 'MAX'
    ELSE CONVERT(CHAR,SYSCOLUMNS.length)
    END) + ') ' 
    END

    + ' ' + ' COLLATE Latin1_General__CI_AI ' + CASE ISNULLABLE WHEN 0 THEN 'NOT NULL' ELSE 'NULL' END
    FROM SYSCOLUMNS , SYSOBJECTS , SYSTYPES
    WHERE SYSCOLUMNS.ID = SYSOBJECTS.ID
    AND SYSOBJECTS.TYPE = 'U'
    AND SYSTYPES.Xtype …
Run Code Online (Sandbox Code Playgroud)

sql-server collation

34
推荐指数
3
解决办法
6万
查看次数

如何摆脱SQL Server查询中的排序规则冲突?

我正在研究一个视图,其中我在两个来自两个不同服务器的表上使用内连接.我们正在使用链接服务器.运行查询时,我收到此消息:

无法在等于操作中解决"SQL_Latin1_General_CP1_CI_AS"和"Arabic_CI_AS"之间的排序规则冲突.

我对整理不太了解.通过互联网搜索我找到了使用的解决方案COLLATE,但这个概念COLLATE对我来说并不清楚.它会改变任何数据库的内容吗?我正在寻找一个解决方案,而无需更改数据库的任何内容.

欢迎任何有关这些概念的好学习材料.

database sql-server collation

34
推荐指数
2
解决办法
9万
查看次数