1

ビューがあり、列のヌルを次の単語で変更したい: other.

これは私がこれまでに試したことです:

CREATE VIEW APB1 AS
  SELECT jos_jam.postcode, location_id, description, 
         category, apb.street, location, apb
  FROM jos_jam
  LEFT JOIN apb
  ON jos_jam.postcode=apb.postcode;
  FROM apb
  UPDATE APB1 SET apb = 'Other' where apb is null

それは値を正しく置き換えませんでした、私も試しました:

CREATE VIEW APB1 AS
  SELECT jos_jam.postcode, location_id, description, 
         category, apb.street, location, apb
  FROM jos_jam
  LEFT JOIN apb
  ON jos_jam.postcode=apb.postcode;
  REPLACE(apb.apb, 'NULL') as 'Other'
  FROM apb

2 番目のクエリで次のエラーが発生します。

#1064 - You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use 
near 'FROM apb
UPDATE APBVolunteers4 SET apb = 'Other' where apb is null' at line 1 

このエラーは何を意味し、null 値をビュー内の単語に置き換えるにはどうすればよいですか?

4

1 に答える 1

1

エラー メッセージは、最初のクエリの FROM という単語または 2 番目のクエリの Replace という単語の前のセミコロンを参照しています。

create view ステートメント内に update ステートメントを配置することはできません。ビューで返されるものを更新するのではなく、データベースを更新しようとしていたようです。

また、ステートメントの下部に From APB は必要ありません。

COALESCE() 演算子は、引数のリストで最初の null 以外の値を返します。

私はこれがうまくいくと思います:

CREATE VIEW APB1 AS
    SELECT jos_jam.postcode, location_id, description, category, apb.street, 
    location, COALESCE(apb, 'Other') as apb
FROM jos_jam
LEFT JOIN apb
   ON jos_jam.postcode=apb.postcode
于 2013-08-24T15:36:28.990 に答える