Mysql 更改类型字段后列的数据被截断

Mysql 更改类型字段后列的数据被截断,mysql,ddl,Mysql,Ddl,将字段类型从varchar(255)修改为varchar(300)后,我的web服务出现问题,因此我想使用以下方法将其更改回255: ALTER TABLE `u_yf_crmentity_search_label` CHANGE `searchlabel` `searchlabel` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL 但我不能,因为: #1265 - Data truncated

将字段类型从varchar(255)修改为varchar(300)后,我的web服务出现问题,因此我想使用以下方法将其更改回255:

ALTER TABLE `u_yf_crmentity_search_label` CHANGE `searchlabel` `searchlabel` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
但我不能,因为:

#1265 - Data truncated for column 'searchlabel' at row 23807
我尝试插入数据,但仍然存在相同的问题

表:

CREATE TABLE `u_yf_crmentity_search_label` (
  `crmid` int(10) UNSIGNED NOT NULL,
  `searchlabel` varchar(300) DEFAULT NULL,
  `setype` varchar(30) NOT NULL,
  `userid` text
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

在create语句中显示的表上,该列最多可容纳300个字符。ALTER语句将此大小减少到255个字符。如果某个记录中该列中的数据长度超过255个字符,您将从MySQL获得此错误/警告。您可以尝试使用
IGNORE
执行
altertable
查询<代码>ALTER IGNORE TABLE等。注意:由于长度超过255个字符的所有内容都将被修剪,因此您将丢失数据。我使用substr()修剪数据,并更改为varchar(255)。谢谢您的建议。在create语句中显示的表中,该列最多可容纳300个字符。ALTER语句将此大小减少到255个字符。如果某个记录中该列中的数据长度超过255个字符,您将从MySQL获得此错误/警告。您可以尝试使用
IGNORE
执行
altertable
查询<代码>ALTER IGNORE TABLE等。注意:由于长度超过255个字符的所有内容都将被修剪,因此您将丢失数据。我使用substr()修剪数据,并更改为varchar(255)。无论如何,谢谢你的建议。