以下是一个达梦数据库(DM V8)中关于 JSON 字段的 SQL 示例,包括数据脱敏、更新 JSON 字段、删除 JSON 键与值、查询 JSON 中的一个键,以及一些日常使用的示例。
假设你的表名为 USER_DATA,有一个 JSON 字段 USER_INFO,其中包含用户的敏感信息。我们将对 email 字段进行脱敏处理。
UPDATE USER_DATA
SET USER_INFO = JSON_MODIFY(USER_INFO, '$.email', '****@example.com')
WHERE USER_INFO IS NOT NULL;假设你想在 JSON 字段 USER_INFO 中添加一个新的键 lastLogin,并设置其值为当前时间。
UPDATE USER_DATA
SET USER_INFO = JSON_MODIFY(USER_INFO, '$.lastLogin', CURRENT_TIMESTAMP)
WHERE USER_INFO IS NOT NULL;如果你想删除 address 键及其对应的值,可以使用以下 SQL:
UPDATE USER_DATA
SET USER_INFO = JSON_MODIFY(USER_INFO, 'delete $.address', NULL)
WHERE USER_INFO IS NOT NULL;如果你想查询 JSON 字段 USER_INFO 中的 username 值,可以使用以下 SQL:
SELECT JSON_VALUE(USER_INFO, '$.username') AS username
FROM USER_DATA
WHERE USER_INFO IS NOT NULL;SELECT 
    JSON_VALUE(USER_INFO, '$.name') AS name,
    JSON_VALUE(USER_INFO, '$.email') AS email, -- 这里的 email 已经脱敏
    JSON_VALUE(USER_INFO, '$.lastLogin') AS lastLogin
FROM USER_DATA
WHERE USER_INFO IS NOT NULL;SELECT COUNT(*) AS user_count
FROM USER_DATA
WHERE USER_INFO IS NOT NULL;JSON_MODIFY 删除不需要的键。JSON_VALUE 提取特定的值。特殊说明: 上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com