如何删除MySQL中的越南语字符 我的代码MYSQL 分隔符// 创建函数fNonUnicode(p_inputVar LONGTEXT) 返回长文本 开始 如果(p_inputVar为NULL或p_inputVar=“”),则返回“”; 如果结束; 声明v_RT LONGTEXT; 声明v_SIGN_CHARS NVARCHAR(256); 声明v_UNSIGN_CHARS NVARCHAR(256); 设置v_SIGN_CHARS=ConcatảãạáằẳẵặắầẩẫậấèẻẽẹéềểễệếìỉĩịíòỏõọóồổỗộốờởỡợớùủũụúừửữựứỳỷỹỵýĂÂĐÊÔƠƯÀẢÃẠÁẰẲẴẶẮẦẨẪẬẤÈẺẼẸÉỀỂỄỆẾÌỈĨỊÍÒỎÕỌÓỒỔỖỘỐỜỞỠỢỚÙỦŨỤÚỪỬỮỰỨỲỶỸỴÝ',NCHAR(272)+NCHAR(208)); 设置v_UNSIGN_CHARS=N'aadeooaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeieiiiooooooooooouuuuuuuuuuyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyydd'; 声明v_计数器int; 声明v_COUNTER1 int; 设置v_计数器=1; WHILE(v_COUNTER
MySQL函数用于删除重音和特殊字符如何删除MySQL中的越南语字符 我的代码MYSQL 分隔符// 创建函数fNonUnicode(p_inputVar LONGTEXT) 返回长文本 开始 如果(p_inputVar为NULL或p_inputVar=“”),则返回“”; 如果结束; 声明v_RT LONGTEXT; 声明v_SIGN_CHARS NVARCHAR(256); 声明v_UNSIGN_CHARS NVARCHAR(256); 设置v_SIGN_CHARS=ConcatảãạáằẳẵặắầẩẫậấèẻẽẹéềểễệếìỉĩịíòỏõọóồổỗộốờởỡợớùủũụúừửữựứỳỷỹỵýĂÂĐÊÔƠƯÀẢÃẠÁẰẲẴẶẮẦẨẪẬẤÈẺẼẸÉỀỂỄỆẾÌỈĨỊÍÒỎÕỌÓỒỔỖỘỐỜỞỠỢỚÙỦŨỤÚỪỬỮỰỨỲỶỸỴÝ',NCHAR(272)+NCHAR(208)); 设置v_UNSIGN_CHARS=N'aadeooaaaaaaaaaaaaaaaaaaaaaaaaaaeeeeeeieiiiooooooooooouuuuuuuuuuyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyydd'; 声明v_计数器int; 声明v_COUNTER1 int; 设置v_计数器=1; WHILE(v_COUNTER,mysql,Mysql,MySQL函数用于删除重音和特殊字符 DROP FUNCTION IF EXISTS fn_remove_accents; DELIMITER | CREATE FUNCTION fn_remove_accents( textvalue VARCHAR(10000) ) RETURNS VARCHAR(10000) BEGIN SET @textvalue = textvalue; -- ACCENTS SET @w
DROP FUNCTION IF EXISTS fn_remove_accents;
DELIMITER |
CREATE FUNCTION fn_remove_accents( textvalue VARCHAR(10000) ) RETURNS VARCHAR(10000)
BEGIN
SET @textvalue = textvalue;
-- ACCENTS
SET @withaccents = 'ŠšŽžÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝŸÞàáâãäåæçèéêëìíîïñòóôõöøùúûüýÿþƒ';
SET @withoutaccents = 'SsZzAAAAAAACEEEEIIIINOOOOOOUUUUYYBaaaaaaaceeeeiiiinoooooouuuuyybf';
SET @count = LENGTH(@withaccents);
WHILE @count > 0 DO
SET @textvalue = REPLACE(@textvalue, SUBSTRING(@withaccents, @count, 1), SUBSTRING(@withoutaccents, @count, 1));
SET @count = @count - 1;
END WHILE;
-- SPECIAL CHARS
SET @special = '!@#$%¨&*()_+=§¹²³£¢¬"`´{[^~}]<,>.:;?/°ºª+*|\\''';
SET @count = LENGTH(@special);
WHILE @count > 0 do
SET @textvalue = REPLACE(@textvalue, SUBSTRING(@special, @count, 1), '');
SET @count = @count - 1;
END WHILE;
RETURN @textvalue;
END
|
DELIMITER ;
DROP函数(如果存在)fn\u remove\u重音符号;
分隔符|
创建函数fn_remove_accents(textvalue VARCHAR(10000))返回VARCHAR(10000)
开始
设置@textvalue=textvalue;
--口音
设置重音符号;
设置@withoutaccents='SSZZAAAAAAAAACEEEIIINOOOOOUUYBAAAACEEIIINOOOUUYBF';
设置@count=LENGTH(@withaccents);
当@count>0时
设置@textvalue=REPLACE(@textvalue,子字符串(@withaccents,@count,1),子字符串(@withoutaccents,@count,1));
设置@count=@count-1;
结束时;
--特殊字符
设置@special='!@$%&*()u+=§¨¨¨¨¨¨¨¨¨¨¨¨¨^}]:;?/¨¨¨+*¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨;
设置@count=长度(@special);
当@count>0时
设置@textvalue=REPLACE(@textvalue,子字符串(@special,@count,1),“”);
设置@count=@count-1;
结束时;
返回@textvalue;
结束
|
定界符;
请尝试使用下面的代码
DROP FUNCTION IF EXISTS fn_remove_accents;
DELIMITER //
CREATE FUNCTION fn_remove_accents(textvalue TEXT)
RETURNS TEXT
BEGIN
SET @textvalue = textvalue;
-- ACCENTS
SET @withaccents = 'ăâđêôơưàảãạáằẳẵặắầẩẫậấèẻẽẹéềểễệếìỉĩịíòỏõọóồổỗộốờởỡợớùủũụúừửữựứỳỷỹỵýĂÂĐÊÔƠƯÀẢÃẠÁẰẲẴẶẮẦẨẪẬẤÈẺẼẸÉỀỂỄỆẾÌỈĨỊÍÒỎÕỌÓỒỔỖỘỐỜỞỠỢỚÙỦŨỤÚỪỬỮỰỨỲỶỸỴÝ';
SET @withoutaccents = 'aadeoouaaaaaaaaaaaaaaaeeeeeeeeeeiiiiiooooooooooooooouuuuuuuuuuyyyyyAADEOOUAAAAAAAAAAAAAAAEEEEEEEEEEIIIIIOOOOOOOOOOOOOOOUUUUUUUUUUYYYYY';
SET @count = LENGTH(@withaccents);
WHILE @count > 0 DO
SET @textvalue = REPLACE(@textvalue, SUBSTRING(@withaccents, @count, 1), SUBSTRING(@withoutaccents, @count, 1));
SET @count = @count - 1;
END WHILE;
RETURN @textvalue;
END
//
DELIMITER ;
如果只想用空格替换它:updatemytable SET myColumn=replace(myColumn,'�', ' ')
DROP FUNCTION IF EXISTS fn_remove_accents;
DELIMITER //
CREATE FUNCTION fn_remove_accents(textvalue TEXT)
RETURNS TEXT
BEGIN
SET @textvalue = textvalue;
-- ACCENTS
SET @withaccents = 'ăâđêôơưàảãạáằẳẵặắầẩẫậấèẻẽẹéềểễệếìỉĩịíòỏõọóồổỗộốờởỡợớùủũụúừửữựứỳỷỹỵýĂÂĐÊÔƠƯÀẢÃẠÁẰẲẴẶẮẦẨẪẬẤÈẺẼẸÉỀỂỄỆẾÌỈĨỊÍÒỎÕỌÓỒỔỖỘỐỜỞỠỢỚÙỦŨỤÚỪỬỮỰỨỲỶỸỴÝ';
SET @withoutaccents = 'aadeoouaaaaaaaaaaaaaaaeeeeeeeeeeiiiiiooooooooooooooouuuuuuuuuuyyyyyAADEOOUAAAAAAAAAAAAAAAEEEEEEEEEEIIIIIOOOOOOOOOOOOOOOUUUUUUUUUUYYYYY';
SET @count = LENGTH(@withaccents);
WHILE @count > 0 DO
SET @textvalue = REPLACE(@textvalue, SUBSTRING(@withaccents, @count, 1), SUBSTRING(@withoutaccents, @count, 1));
SET @count = @count - 1;
END WHILE;
RETURN @textvalue;
END
//
DELIMITER ;