UPDATE user
--使用UPDATE语句来更新user表中的记录
SET lists = CASE
-- 使用CASE语句对lists字段进行条件判断和赋值操作
WHEN JSON_TYPE(lists) IS NULL OR JSON_TYPE(lists) <> 'ARRAY'
-- 第一个条件:检查lists字段的类型是否为空或非数组类型
THEN JSON_ARRAY(uid)
-- 如果lists字段为空或非数组类型则将uid作为单独的元素存入lists字段中
ELSE CASE
WHEN JSON_CONTAINS(lists, CAST(uid AS JSON))
-- 第二个条件:检查lists字段中是否已包含uid值
THEN lists
-- 如果lists字段中已包含uid值,则不进行任何更改
ELSE JSON_ARRAY_APPEND(lists, '$', uid)
-- 如果lists字段中不包含uid值,则将uid添加至lists数组中
END
END;
如果uid为空
UPDATE user
SET lists = CASE
WHEN uid IS NULL OR uid = ''
THEN lists -- 如果uid为空,则不对lists字段进行任何操作
WHEN JSON_TYPE(lists) IS NULL OR JSON_TYPE(lists) <> 'ARRAY'
THEN JSON_ARRAY(uid)
ELSE CASE
WHEN JSON_CONTAINS(lists, CAST(uid AS JSON))
THEN lists
ELSE JSON_ARRAY_APPEND(lists, '$', uid)
END
END;