标签: collation

MySQL将ÅÄÖ视为AAO?

这两个查询给了我完全相同的结果:

select * from topics where name='Harligt';
select * from topics where name='Härligt';
Run Code Online (Sandbox Code Playgroud)

这怎么可能?看起来像mysql在搜索时将åäö翻译成aao.有什么办法可以解决这个问题吗?

据我所知,我到处都使用utf-8编码.终端和php都会出现同样的问题.

mysql unicode encoding collation

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

如何将我的数据库中的所有表更改为UTF8字符集?

我的数据库不是UTF8,我想将所有表转换为UTF8,我该怎么做?

mysql collation utf-8 alter

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

混合的字数和字符串的人性化或自然数字排序

关注Sivaram Chintalapudi 提出这个问题,我很感兴趣的是PostgreSQL中是否可以进行自然 - 或"人性化" - 对包含多位数字和单词/字母混合的字符串进行排序.没有固定的字符串中的单词和数字的模式,并且字符串中可能有多个多位数字.

我经常看到这个常见的地方是在Mac OS的Finder中,它自然地对包含混合数字和单词的文件名进行排序,在"3"之后放置"20",而不是在它之前.

所需的校对顺序将由算法产生,该算法将每个字符串拆分为字母数字边界的块,然后对每个部分进行排序,处理具有正常整理的字母块和用于整理目的的数字块作为整数.所以:

'AAA2fred'将成为('AAA',2,'fred')'AAA10bob'将成为('AAA',10,'bob').然后可以根据需要对它们进行排序:

regress=# WITH dat AS ( VALUES ('AAA',2,'fred'), ('AAA',10,'bob') )
regress-# SELECT dat FROM dat ORDER BY dat;
     dat      
--------------
 (AAA,2,fred)
 (AAA,10,bob)
(2 rows)
Run Code Online (Sandbox Code Playgroud)

与通常的字符串排序规则相比:

regress=# WITH dat AS ( VALUES ('AAA2fred'), ('AAA10bob') )
regress-# SELECT dat FROM dat ORDER BY dat;
    dat     
------------
 (AAA10bob)
 (AAA2fred)
(2 rows)
Run Code Online (Sandbox Code Playgroud)

但是,记录比较方法没有概括,因为Pg不会比较ROW(..)构造或不等数量条目的记录.

给定此SQLFiddle中的示例数据,默认的en_AU.UTF …

sql sorting postgresql collation natural-sort

29
推荐指数
4
解决办法
8248
查看次数

在t-sql中转换nvarchar变量的归类

我需要更改nvarchar变量的排序规则.通过文件:

(...)3.可以在多个级别指定COLLATE子句.这些包括以下内容:

转换表达式的排序规则.您可以使用COLLATE子句将字符表达式应用于某个排序规则.为字符文字和变量分配当前数据库的默认排序规则.为列引用分配列的定义排序规则.有关表达式的排序规则,请参阅排序规则优先顺序 (Transact-SQL).

但是,为了这个目的,我无法弄清楚使用CAST(),CONVERT()或使用DECLARE的变量声明的正确语法.

sql t-sql collation string-comparison sql-server-2008

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

MariaDB/MySQL中的utf8mb4_unicode_ci和utf8mb4_unicode_520_ci排序区别?

我登录MariaDB/MySQL并输入:

SHOW COLLATION;
Run Code Online (Sandbox Code Playgroud)

我看到的utf8mb4_unicode_ciutf8mb4_unicode_520_ci可用的排序规则之一.这两种排序规则之间有什么区别,我们应该使用哪种排序规则?

mysql unicode collation mariadb

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

在SQL数据库中存储阿拉伯语

我试图在SQL 2008数据库中存储阿拉伯字符串,但它转换为"问号"为什么?我该怎么办?

sql sql-server collation sql-server-2008

26
推荐指数
5
解决办法
6万
查看次数

哪个utf8校对最好?

我想要一个UTF8排序规则来支持:

  • 英语
  • 波斯语
  • 阿拉伯
  • 法国
  • 日本
  • 中文

是否UTF8_GENERAL_CI支持所有这些语言?

mysql collation

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

phpmysql错误 - #1273 - #1273 - 未知排序规则:'utf8mb4_general_ci'

我刚刚安装了PhpMyAdmin v4.1.5英文版

我已将其设置为访问2台服务器 - 我的PC上的本地服务器和服务器上的远程服务器

一切都适合我的本地PC,但当我登录到我的远程服务器时,我收到了消息

错误

MySQL说:

#1273 - 未知校对:'utf8mb4_general_ci'

搜索PhpMyAdmin代码会在DatabaseInterface.class.php中找到对此的一个引用

        if (PMA_MYSQL_INT_VERSION >  50503) {
            $default_charset = 'utf8mb4';
            $default_collation = 'utf8mb4_general_ci';
        } else {
            $default_charset = 'utf8';
            $default_collation = 'utf8_general_ci';
        }
Run Code Online (Sandbox Code Playgroud)

不知道这是什么,但它似乎错误地设置了默认的charset&collat​​ion

php mysql collation phpmyadmin

25
推荐指数
4
解决办法
15万
查看次数

UTF8 Postgresql像MySQL一样创建数据库(包括字符集,编码和lc_type)

对于以下MySQL创建数据库语句,postgresql中的等价物是什么?:

CREATE DATABASE IF NOT EXISTS `scratch` 
  DEFAULT CHARACTER SET = utf8
  DEFAULT COLLATE = utf8_unicode_ci;
Run Code Online (Sandbox Code Playgroud)

我目前有:

CREATE DATABASE "scratch"
  WITH OWNER "postgres"
  ENCODING 'UTF8'
  TABLESPACE "pg_default";
Run Code Online (Sandbox Code Playgroud)

这还不够,还是我应该更具体LOCALE一些?

postgresql ddl encoding collation character-encoding

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

临时表排序规则冲突 - 错误:无法解决Latin1*和SQL_Latin1*之间的排序规则冲突

我无法更新临时表.这是我的查询

CREATE TABLE #temp_po(IndentID INT, OIndentDetailID INT, OD1 VARCHAR(50), OD2 VARCHAR(50), 
        OD3 VARCHAR(50), ORD VARCHAR(50), NIndentDetailID INT, ND1 VARCHAR(50), ND2 VARCHAR(50), 
        ND3 VARCHAR(50), NRD VARCHAR(50), Quantity DECIMAL(15,3))

        INSERT INTO #temp_po(IndentID, OIndentDetailID, OD1, OD2, OD3, ORD)
        SELECT ID.IndentID, ID.IndentDetailID, ID.D1, ID.D2, ID.D3, ID.RandomDimension 
        FROM STR_IndentDetail ID WHERE ID.IndentID = @IndentID

        UPDATE 
            t 
        SET
            t.ND1 = CASE WHEN D.D1 = '' THEN NULL ELSE D.D1 END,
            t.ND2 = CASE WHEN D.D2 = '' THEN NULL ELSE D.D2 END,
            t.ND3 = CASE WHEN …
Run Code Online (Sandbox Code Playgroud)

sql sql-server collation tempdb

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