【问题标题】:Create view and replace null values with a word创建视图并用单词替换空值
【发布时间】:2013-08-24 15:19:45
【问题描述】:

我有一个视图,我想用一个词更改列中的空值: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 

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

【问题讨论】:

    标签: mysql string view replace null


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-13
      • 1970-01-01
      相关资源
      最近更新 更多