-1

一度に誤った複数のデータを置き換える必要があるため、preg_replaceを使用しましたが、スタイルのスペルミスでしか置き換えられないため、スタックします。間違ったスタイルが複数あり、それらすべてを1つの標準スタイルに置き換えたいので、カーソルを使用しています。しかし、それは私に構文エラーを与えています。

クエリを添付しました。

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構文にエラーがあります。3行目の''の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

4

1 に答える 1