我必须一次替换不正确的多个数据,所以我使用了 preg_replace 但我被卡住了,因为它只替换样式拼写错误。有多种不同的不正确样式,我想用一种标准样式替换它们,所以我使用了光标。但它给了我一个语法错误。
我已附上我的查询。
CREATE PROCEDURE addcorrect()
BEGIN
DECLARE ADDRESS char(90);
DECLARE badaddress CURSOR FOR
SELECT
supplementtal_address_1
FROM aditi_po
WHERE ((
UPPER( street_name ) LIKE '%P%BOX%'
OR UPPER( supplementtal_address_1 ) LIKE 'P%BOX%'
)
AND id NOT IN (
SELECT id
FROM aditi_po
WHERE (street_name LIKE '%PO %Box%'
or supplementtal_address_1 LIKE '%PO %Box%')
));
OPEN badaddress
read_loop: LOOP
FETCH badaddress INTO ADDRESS;
IF done THEN
LEAVE read_loop;
END IF;
if ADDRESS LIKE '%P.O. Box%' THEN
print ADDRESS = PREG_REPLACE('/(.*?)(P.O. Box)/' , '$1PO Box' ,ADDRESS)
ELSE ADDRESS LIKE '%P.O. Box%' THEN print ADDRESS = PREG_REPLACE('/(.*?)(P.O. Box)/' , '$1PO Box' ,ADDRESS)
END IF;
END LOOP;
CLOSE badaddress;
END;
MySQL 说:
#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的 '' 附近使用正确的语法