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

第二个查询出现以下错误:

#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 

这个错误是什么意思,如何用视图中的单词替换空值?

4

1 回答 1

1

错误消息是指第一个查询中单词 FROM 之前的分号或第二个查询中单词 Replace 之前的分号。

您不能将更新语句放在创建视图语句中。看起来您正在尝试更新数据库,而不是更新视图中返回的内容。

此外,您的声明底部不需要 From APB。

COALESCE() 运算符返回其参数列表中的第一个非空值。

我认为这应该有效:

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 回答