2012-09-04 72 views
0

我想使用另一个变量引用一个变量。基本上,我有7个地址字段(地址1,地址等),这将节省编码,使一个循环,从1到7的很多这里有一个基本的情况,我需要这样的:MySQL存储过程,带变量名称的变量

Naddress1 = replace(Naddress1,'.',''); 
Naddress2 = replace(Naddress2,'.',''); 
Naddress3 = replace(Naddress3,'.',''); 
Naddress4 = replace(Naddress4,'.',''); 
Naddress5 = replace(Naddress5,'.',''); 
Naddress6 = replace(Naddress6,'.',''); 
Naddress7 = replace(Naddress7,'.',''); 
Naddress1 = replace(Naddress1,',',' '); 
Naddress2 = replace(Naddress2,',',' '); 
Naddress3 = replace(Naddress3,',',' '); 
Naddress4 = replace(Naddress4,',',' '); 
Naddress5 = replace(Naddress5,',',' '); 
Naddress6 = replace(Naddress6,',',' '); 
Naddress7 = replace(Naddress7,',',' '); 
Naddress1 = replace(Naddress1,'/'',' '); 
Naddress2 = replace(Naddress2,'/'',' '); 
Naddress3 = replace(Naddress3,'/'',' '); 
Naddress4 = replace(Naddress4,'/'',' '); 
Naddress5 = replace(Naddress5,'/'',' '); 
Naddress6 = replace(Naddress6,'/'',' '); 
Naddress7 = replace(Naddress7,'/'',' '); 

我”什么D类似于:

DECLARE address_iterator INT; 
SET address_iterator = 1; 
WHILE address_iterator <= 7 DO 
Naddress & address_iterator = replace(Naddress & address_iterator, '.',''); 
Naddress & address_iterator = replace(Naddress & address_iterator, ',',' '); 
Naddress & address_iterator = replace(Naddress & address_iterator, '/'',' '); 
END WHILE; 

回答

0

在MySQL中,你可以做这样的事情 -

UPDATE 
    table 
SET 
    address1 = REPLACE(REPLACE(REPLACE(address1, '.', ''), ',',' '), '/',' '), 
    address2 = REPLACE(REPLACE(REPLACE(address2, '.', ''), ',',' '), '/',' '), 
    address3 = REPLACE(REPLACE(REPLACE(address3, '.', ''), ',',' '), '/',' '); 

否则,你应该在自动化应用这项任务。

+0

忘记提及这是在存储过程中,但这个答案有很大帮助!谢谢 – user1630799