标签: collation

如果不存在,则向 postgresql 添加排序规则

仅当排序规则不存在时,我才想向 postgresql DB 添加排序规则

如何检查 postgesql 9.1.* 中现有的排序规则?

谢谢

postgresql collation postgresql-9.1

1
推荐指数
1
解决办法
3024
查看次数

我应该使用什么 SQL 排序规则来存储多语言字符?

我有一个数据库,我的用户来自世界各地,因此我应该以任何语言类型存储输入。

默认情况下,我的 SQL 排序规则是,SQL_Latin1_General_CP1_CA_AS但此排序规则不能存储俄语。

我应该使用什么 SQL 排序规则来存储任何语言类型,如日语、波斯语、英语、俄语等?

sql-server multilingual collation

1
推荐指数
1
解决办法
3468
查看次数

更改 MySQL 数据库的字符集和排序规则时,现有索引是否会受到影响

  1. 我们有一个数据库,其中表和列的默认字符集设置为utf8编码
  2. 但是使用utf8字符集编码,我们无法保存表情符号
  3. 为了支持保存表情符号,a) 我们必须将表和列的字符集更改为utf8mb4 b) 我们必须将表和列的排序规则更改为 utf8mb4_unicode_ci c) 更新我们的 JDBC 驱动程序,使其支持 unicode 编码

通过上述更改,我们可以将表情符号保存在我们的列中。

问题: 1)我是否需要删除现有索引(varchar 列)并重新创建索引,如之前使用 utf8 每个字符占用 3 个字节,现在使用 utf8mb4 编码它将占用 4 个字节?

mysql database collation character-encoding character-set

1
推荐指数
1
解决办法
1514
查看次数

utf8mb4_cs_0900_as_cs 和 utf8mb4_900_as_cs 有什么区别?

我在为 SQLALCHEMY api 构建单元测试时遇到问题。我注意到当要求按字符串列排序时,我的 MySQL 数据库返回意外的顺序。一些调查表明我们的数据库正在使用 utf8mb4_cs_0900_as_cs。但是当尝试使用 utf8mb4_0900_as_cs 订购时,我得到了预期的订单。

有人可以向我解释这两种排序规则之间有什么区别吗?

mysql> SELECT
    ->     column_0 AS name1
    -> FROM
    ->     (VALUES
    ->         ROW('default_chanakah'),
    -> ROW('default_aaa'),
    -> ROW('default_zzz'),
    ->         ROW('default_hsunan'),
    ->         ROW('default_kourin1')
    ->     ) AS hardcodedNames
    -> ORDER BY
    -> name1
    -> COLLATE utf8mb4_cs_0900_as_cs;
+------------------+
| name1            |
+------------------+
| default_aaa      |
| default_hsunan   |
| default_chanakah |
| default_kourin1  |
| default_zzz      |
+------------------+
5 rows in set (0.00 sec)

mysql> SELECT
    ->     column_0 AS name1
    -> FROM
    ->     (VALUES
    -> …
Run Code Online (Sandbox Code Playgroud)

mysql collation

1
推荐指数
1
解决办法
61
查看次数

更改SQL Server 2008实例的默认排序规则

当我尝试使用此命令行更改SQL Server实例的默认排序规则时:

setup.exe /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SAPWD=********* /SQLCOLLECTION=SQL_Latin1_General_CP1_CI_AS

我收到以下消息:

Microsoft(R)SQL Server 2008安装程序10.00.1600.22版权所有(c)Microsoft Corporation.版权所有.

发生以下错误:

无法识别指定的"SQLCOLLECTION"设置.

错误结果:-2068578301结果设施代码:1204结果错误代码:3

请查看summary.txt日志以获取更多详细信息

有什么我想念的吗?我是否需要为setup.exe做一些特殊的事情才能找到SQL_Latin1_General_CP1_CI_AS整理?

谢谢.

sql-server collation sql-server-2008

0
推荐指数
1
解决办法
8953
查看次数

Mysql存储引号为'

我有一些PHP代码,用于存储数据库中文本框中输入的内容.如果我输入bob's apples,它将被存储在数据库中bob's apples.

可能是什么问题?

存储它的表具有latin1_swedish_ci的排序规则.

php mysql sql collation character-encoding

0
推荐指数
1
解决办法
3164
查看次数

TSQL在忽略大小写/大写的同时比较字符串/ Varchars?

我正在进行查询,以便可以将从文件名读取的单词与代码中已预定义的另一个单词进行比较,并为其分配一个数值。

但是,我遇到的问题是试图忽略名称的大小写,因为名称是从文件中读取的,大小写可能会更改,然后与我设置的预定义值不匹配。除了将所有可能的值放入案例中之外,是否有任何简单的方法可以忽略大小写?

代码嗅探:

NumberVal = CASE   
              WHEN Name = 'Bond' OR Name = 'BOND' OR Name = 'bond' THEN 16   
            END
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server collation sql-server-2008

0
推荐指数
1
解决办法
4136
查看次数

SQL Server 2008 R2 中的韩语(和其他 Unicode)字符在查询结果中无法正确显示

我有一个数据库需要保存多种语言和字母的数据。我使用默认的拉丁排序规则,但所有文本字段都是 Unicode 类型(nchar、nvarchar)。

\n\n

我可以愉快地使用前端应用程序从数据库插入和检索 Unicode 数据,但如果我使用 SSMS 查看数据,那么我看到的只是乱码!

\n\n

我可以插入这个:

\n\n
\xea\xb7\xb9\xeb\x8b\xa8\xec\xa0\x81\xec\x9c\xbc\xeb\xa1\x9c\n
Run Code Online (Sandbox Code Playgroud)\n\n

在 SSMS 中看起来像这样:

\n\n
\xc3\xaa\xc2\xb7\xc2\xb9\xc3\xab\xe2\x80\xb9\xc2\xa8\xc3\xac\xc2\xa0\xc3\xac\xc5\x93\xc2\xbc\xc3\xab\xc2\xa1\xc5\x93\n
Run Code Online (Sandbox Code Playgroud)\n\n

但我的前端应用程序检索如下:

\n\n
\xea\xb7\xb9\xeb\x8b\xa8\xec\xa0\x81\xec\x9c\xbc\xeb\xa1\x9c\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在显然数据本身存储正常,但为什么 SSMS 将其显示为乱码?有趣的是,如果我使用 SSMS 直接编辑数据并粘贴到上面,然后将其显示为这样(编辑:结果是将结果从网格切换为文本可以减轻我的这部分问题,因为显示正确的文本而不是框.):

\n\n
\xe2\x96\xa1\xe2\x96\xa1\xe2\x96\xa1\xe2\x96\xa1\xe2\x96\xa1\n
Run Code Online (Sandbox Code Playgroud)\n\n

但如果我将其复制并粘贴到文本编辑器中,结果会是:

\n\n
\xea\xb7\xb9\xeb\x8b\xa8\xec\xa0\x81\xec\x9c\xbc\xeb\xa1\x9c\n
Run Code Online (Sandbox Code Playgroud)\n\n

为了查看这是否只是 SSMS 行为不当(/我配置错误),我使用了 MS Access 并将其链接到我的 SQL Server 数据库,但它显示与 SQL Server 相同的乱码。

\n\n

该数据库将保存 Web 应用程序的所有静态文本,因此对我来说能够轻松查看和编辑数据非常重要,而当您只能看到以下数据时,这并不容易做到:

\n\n
\xc3\xaa\xc2\xb7\xc2\xb9\xc3\xab\xe2\x80\xb9\xc2\xa8\xc3\xac\xc2\xa0\xc3\xac\xc5\x93\xc2\xbc\xc3\xab\xc2\xa1\xc5\x93\n
Run Code Online (Sandbox Code Playgroud)\n\n

任何建议都会很棒,我真的很坚持这一点。

\n\n

编辑

\n\n

这是我目前在 PHP 中完成的数据插入示例:

\n\n
$con = sqlsrv_connect("(local)", array("Database" => "myDatabase"));\n$SQL = "INSERT INTO TableName (col1,col2) VALUES (N\'\xea\xb7\xb9\xeb\x8b\xa8\xec\xa0\x81\xec\x9c\xbc\xeb\xa1\x9c\',N\'\xea\xb7\xb9\xeb\x8b\xa8\xec\xa0\x81\xec\x9c\xbc\xeb\xa1\x9c\')";\nsqlsrv_query($con,$SQL);\n …
Run Code Online (Sandbox Code Playgroud)

sql-server unicode collation cjk sql-server-2008

0
推荐指数
1
解决办法
8686
查看次数

如何更改 MySQL 中的表(默认)排序规则而不转换列

更改 mysql 表上的排序规则的常用方法是:

ALTER TABLE <table_name> CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Run Code Online (Sandbox Code Playgroud)

我想要做的是更改表默认排序规则而不更改现有的列排序规则。我怎样才能做到这一点?

mysql collation

0
推荐指数
1
解决办法
1810
查看次数

在将插入脚本生成为动态查询时,即使列是 nvarchar,此 N 也不会添加前缀

SELECT 'INSERT INTO test ( name ) 
VALUES ( '''+S1.name+''' )' from SourceTable S1
Run Code Online (Sandbox Code Playgroud)

在生成插入脚本作为动态查询时,即使列是 nvarchar,unicode 字符 N 也不会获得前缀。

不带动态查询的插入通过前缀 N 效果很好。

sql sql-server collation

0
推荐指数
1
解决办法
64
查看次数

phpMyAdmin 的库存安装出现“非法混合排序规则”错误

问题

我有一个 Debian 11(测试)的库存安装,以及全新安装的 MariaDB (10.5.9-MariaDB-1)、phpMyAdmin (5.0.4deb2) 和 Lighttpd (1.4.59)。添加用户并登录后,单击任何数据库和权限选项卡都会出现以下错误:

#1267 - Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (utf8mb4_unicode_ci,COERCIBLE) for operation '<>'
Run Code Online (Sandbox Code Playgroud)

我的问题:

这是 Debian 在某个时候需要解决的问题,但在短期内是否有全局排序规则设置来修复此错误?

“正确”的整理往往是一场圣战。我想要一些合理的东西,并且在我可以更详细地查看排序规则之前它会起作用。

更多错误详细信息

当您单击权限选项卡时,由 phpMyAdmin 本身生成的查询会发生此错误。下面重现了生成错误的查询。该查询似乎仅合并来自 mysql 数据库的“db”表和“user”viee 的数据,这些数据从“global_priv”中提取数据

未对现有 MariaDB 排序规则进行任何更改。默认情况下,MariaDB 的内部 mysql 数据库表本身就是一堆混乱的排序规则。

表大部分是 utf8_bin,但也有一些 utf8_general_ci,甚至还有一个 latin1_swedish_ci。表中的列也很混乱,有些采用表的默认排序规则,有些专门设置为 utf8_general_ci 和 utf8mb4_bin。mysql.db和mysql.global_priv都是utf8_bin,但是global_priv中的一列是utf8mb4_bin,而mysql.db中的许多列都是utf8_general_ci。

查询生成错误:

( SELECT `User`, `Host`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`,
 `Drop_priv`, `Grant_priv`, `Index_priv`, `Alter_priv`, `References_priv`, `Create_tmp_table_priv`,
 `Lock_tables_priv`, `Create_view_priv`, `Show_view_priv`, `Create_routine_priv`,
 `Alter_routine_priv`, `Execute_priv`, `Event_priv`, `Trigger_priv`, '*' AS `Db`, 'g' AS `Type` FROM
 `mysql`.`user` …
Run Code Online (Sandbox Code Playgroud)

debian collation phpmyadmin mariadb mariadb-10.5

0
推荐指数
1
解决办法
2458
查看次数