创建MySQL视图时如何将已填充值的字段显示为空(针对klanten.KlantEmail)
MySQL视图中屏蔽指定字段原有值、显示为空的实现方法
针对klanten表视图需要隐藏KlantEmail字段真实值、统一返回空的需求,无需修改原表数据,仅调整视图查询语句中该字段的取值逻辑即可:不需要读取原表KlantEmail的存储内容,直接在对应字段位置返回固定空值。
方案1:返回NULL空值(通用场景首选)
将原SELECT语句中读取klanten.KlantEmail的部分,替换为NULL AS KlantEmail,完整建视图SQL如下:
CREATE VIEW v_klanten AS SELECT klanten.KlantId, klanten.KlantRelid, klanten.KlantU4relid, klanten.KlantZoeknaam, klanten.KlantNaam, klanten.KlantStraat, klanten.KlantHuisnummer, klanten.KlantAdres, klanten.KlantPostcode, klanten.KlantPlaats, klanten.KlantPostbus, NULL AS KlantEmail FROM klanten;
方案2:返回空字符串(适配不支持NULL的业务场景)
如果下游业务逻辑无法处理NULL值,需要返回无内容的空字符串,将对应字段位置替换为'' AS KlantEmail即可:
-- 其余字段和原查询保持一致,仅修改KlantEmail字段取值逻辑 '' AS KlantEmail
注意:
AS KlantEmail的字段别名不能省略,否则视图中该字段会使用默认的表达式名称,和原有字段名不匹配,会导致依赖该字段的查询、报表报错。以上两种写法都仅在视图层做值的屏蔽,完全不会修改klanten表中存储的真实邮箱数据,原表的正常读写不受影响。
内容的提问来源于stack exchange,提问作者Nicky
相关产品推荐
相关产品推荐

