我想替換MySQL中VARCHAR字段中的所有非數字字符,因爲是一個電話表,在導入它們時,我發現了幾個不應該存在的「Fax:xxx」或「 - 」字符。如何替換MySQL中的非數字字符?
我寧願不是涉及多個替換解決方案()調用,
在此先感謝
我想替換MySQL中VARCHAR字段中的所有非數字字符,因爲是一個電話表,在導入它們時,我發現了幾個不應該存在的「Fax:xxx」或「 - 」字符。如何替換MySQL中的非數字字符?
我寧願不是涉及多個替換解決方案()調用,
在此先感謝
這是一個MySQL的函數:
delimiter //
create function IF NOT EXISTS LeaveNumber(str varchar(50)) returns varchar(50)
no sql
begin
declare verification varchar(50);
declare result varchar(50) default '';
declare character varchar(2);
declare i integer default 1;
if char_length(str) > 0 then
while(i <= char_length(str)) do
set character = substring(str,i,1);
set verification = find_in_set(character,'1,2,3,4,5,6,7,8,9,0');
if verification > 0 then
set result = concat(result,character);
end if;
set i = i + 1;
end while;
return result;
else
return '';
end if;
end //
delimiter ;
select leaveNumber('fAX:-12abcDE234'); -- RESULT: 12234
使用它作爲您的更新查詢本地的MySQL函數。
你提供的鏈接已損壞:( – 2011-03-01 03:13:58
偉大的工作暱稱;)你保存了我的一天:) – 2012-01-26 23:09:31
很高興我的功能幫助你。謝謝你的提升。 ;) – 2012-01-26 23:17:11
只有portugeese(?)變量名稱非常混亂,試圖瞭解它是如何完成的:D – 2012-01-27 09:35:51