SQL错误1406数据对于本地mysql mac osx上的列“concatenado”太长,它在Windows上工作得非常好
我有一个函数,它允许我对每个表大小在50到90个单词之间的标题titulo进行压缩,直到我的subtitle subtitulo为空。最初这有varchar5000,我发现这个函数的返回值没有达到大约4000个单词,这个函数在Windows 8中运行良好,没有任何问题,我改为在MacBook pro osx 10.8.2中工作,我安装了Mysql最新版本,最近我也更改了安装MAMP,但Column仍然存在同样的问题,我更改了文本、长文本、BLOB、longBlob的类型。我的IDE显示消息“running…”,但没有停止,为什么我的功能在Windows而不是Mac上运行得很好,4天前我就遇到了这个问题 另外,我的SELECT@@max\u allowed\u数据包在结果1048576上显示问题是否存在?如果是这样,如何在MacOSX中添加更多的大小SQL错误1406数据对于本地mysql mac osx上的列“concatenado”太长,它在Windows上工作得非常好,mysql,macos,Mysql,Macos,我有一个函数,它允许我对每个表大小在50到90个单词之间的标题titulo进行压缩,直到我的subtitle subtitulo为空。最初这有varchar5000,我发现这个函数的返回值没有达到大约4000个单词,这个函数在Windows 8中运行良好,没有任何问题,我改为在MacBook pro osx 10.8.2中工作,我安装了Mysql最新版本,最近我也更改了安装MAMP,但Column仍然存在同样的问题,我更改了文本、长文本、BLOB、longBlob的类型。我的IDE显示消息“ru
DELIMITER $$
CREATE DEFINER=root@localhost FUNCTION fn_avanceFisico_ConcatenadoTitulos(pIdTitulo int) RETURNS varchar(5000) CHARSET utf8 BEGIN
DECLARE concatenado varchar(5000);
set concatenado='';
WHILE (ifnull(pIdTitulo,0) <> 0) do
SELECT concat_ws('</br> Subtitulo',concatenado,titulo),subtitulo into concatenado,pIdTitulo
FROM ttitulo
WHERE idTitulo=pIdTitulo;
END while;
RETURN concatenado;
END;
干杯错误清楚地说明了这一点 您必须使此列在数据库中的长度更长 如果是varchar5000,则将其增加到varchar6000///这只是一个示例 考虑使用文本类型来存储长字符串。 试试看:
DELIMITER $$
CREATE DEFINER=root@localhost FUNCTION fn_avanceFisico_ConcatenadoTitulos(pIdTitulo int) RETURNS varchar(5000) CHARSET utf8 BEGIN
DECLARE concatenado varchar(6000);
.....
.....
谢谢Echo的回答,正如你所说,我用varchar6000进行了更改,并用更多的varchar大小证明了这一点,还有不同的类型,如tex、long tex等,当我执行函数show me¨running…¨并且没有停止时。这意味着你的主要问题已经解决了,如果没有完成,你可以查看你的while循环,它仍然循环不停,我不知道那里发生了什么事。