Mysql 如何将子字符串_索引的结果强制转换为varchar?

Mysql 如何将子字符串_索引的结果强制转换为varchar?,mysql,sql,Mysql,Sql,mytable中的My csv列包含以下作为文本列的内容 我想创建一个视图,但希望生成的表是varchar列。但是,我得到的是以下选择文本: CREATE VIEW my_view AS SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(csv, ';', 2), ';', -1) AS test FROM mytable; 是否无法将这些字段转换为varchar或char 但是相反,我收到了短信 您是从哪里获取此信息的 dbfiddle我忘了提到csv字段是TEX

mytable中的My csv列包含以下作为文本列的内容

我想创建一个视图,但希望生成的表是varchar列。但是,我得到的是以下选择文本:

CREATE VIEW my_view AS
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(csv, ';', 2), ';', -1) AS test
FROM mytable;
是否无法将这些字段转换为varchar或char

但是相反,我收到了短信

您是从哪里获取此信息的


dbfiddle

我忘了提到csv字段是TEXT@membersound更新。
CREATE VIEW my_view AS
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(csv, ';', 2), ';', -1) AS test
FROM mytable;
CREATE TABLE mytable (csv VARCHAR(250))
SELECT 'john;doe;12;john@example.com' AS csv;
CREATE VIEW my_view AS
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(csv, ';', 2), ';', -1) AS test
FROM mytable;
CREATE TABLE test
SELECT * FROM my_view;
SHOW CREATE TABLE test;
Table | Create Table :---- | :------------------------------------------------------------------ test | CREATE TABLE `test` ( | `test` varchar(250) DEFAULT NULL | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
CREATE TABLE mytable (csv TEXT)
SELECT 'john;doe;12;john@example.com' AS csv;
CREATE VIEW my_view AS
SELECT CONVERT(SUBSTRING_INDEX(SUBSTRING_INDEX(csv, ';', 2), ';', -1), CHAR(255)) AS test
FROM mytable;
CREATE TABLE test
SELECT * FROM my_view;
SHOW CREATE TABLE test;
Table | Create Table :---- | :------------------------------------------------------------------ test | CREATE TABLE `test` ( | `test` varchar(255) DEFAULT NULL | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci