0

我想将视图的排序规则设置为默认数据库。但该选项不可用。即使我尝试设置除此之外的任何其他内容,也不会在列中反映相同的内容,因为它们单独具有不同的排序规则。

代码:

create or replace view my_view as
select * from table_a a
inner join table_b b
on a.id = b.fk_id
collate utf8mb4_unicode_ci

但如果我查询

SHOW FULL COLUMNS FROM my_view

结果集包含排序规则为utf8mb4_general_ci

谁能解释为什么会这样?我该如何纠正?

更多信息

SHOW VARIABLES LIKE "char%";
变量的名称 价值
character_set_client utf8
字符集连接 utf8
字符集数据库 utf8mb4
字符集文件系统 二进制
字符集结果 utf8
character_set_server 拉丁语1
字符集系统 utf8
character_sets_dir /usr/local/mysql/share/charsets/
4

1 回答 1

1

collate utf8mb4_unicode_ci仅对加入条件的影响。

如果您需要更改结果集排序规则,则必须使用单独的列列表而不是带有单独排序规则更改(CONVERT函数)的星号或为每个字符串类型列指定。

演示

于 2021-01-12T11:41:08.813 回答