gpt4 book ai didi

c# - MySQL 8.0 concat 从 mediumtext 列返回 system.byte[]

转载 作者:行者123 更新时间:2023-11-29 02:11:13 25 4
gpt4 key购买 nike

在我的公司,我们使用一个与 MySQL 服务器协同工作的自制 ERP 系统。 ERP系统采用C#编写,Visual Studio 2017,服务器版本为5.0。

我尝试将 MySQL 从 5.0 版本升级到当前的 8.0 版本。但是,使用“concat”命令的 SQL 查询似乎不再有效。

例如查询

Concat(Column1, Coalesce(Column2, ''), Column3, Coalesce(Column4, '')) As Result

不返回字符串,而是一个 system.byte[] 对象。

我找到了一篇关于这个主题的文章:

https://bugs.mysql.com/bug.php?id=37485

据此,我尝试修改SQL查询如下:

Concat(cast(Column1 as char), Coalesce(cast(Column2 as char), ''), cast(Column3 as char), Coalesce(cast(Column4 as char), '')) As Result

但它仍然不断地返回 system.byte[]。

然后我尝试添加

“Respect Binary flags=false” 

连接字符串,但这也没有用,visual studio 抛出以下错误:

“不支持关键字。参数名称:遵守二进制标志”

我发现当我只尝试连接 column1 和 column2 时 concat 起作用,所以我寻找不同之处并注意到 column1 和 2 是 varchar(50) 而 column3 和 4 是 mediumtext。

我不明白为什么变量的转换不起作用或者“尊重二进制标志”参数有什么问题。两者似乎都解决了其他情况下的问题。有没有人提示我如何以简单的方式解决这个问题?提前致谢..

最佳答案

尝试在 concat 或 coalesce 之后使用 cast 以确保结果是您想要的所需类型。我使用了 255 个字符,但你可以选择你需要的大小。下面是我用来测试这个的代码。

create table testing (
column1 varchar(50),
column2 mediumtext);

insert into testing values ('this','that');

CREATE table temp AS
select CAST(coalesce(column1, column2) AS char(255)) from testing;

DESCRIBE temp;

关于c# - MySQL 8.0 concat 从 mediumtext 列返回 system.byte[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51925621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com