我在GitHub上的账号是https://github.com/JiaJiaJiang,而我刚刚下班看到群里有人发了一个在GitCode上用我的用户名并且克隆了我两个项目的账号:https://gitcode.com/JiaJiaJiang,但这里面的项目是不能直接打开的,听说可以克隆下来,我没去试。
月度归档:2024年06月
[MySQL]JSON数组取对称差集函数
写了个函数,做个记录。作用是扣掉两个数组相同的部分,只保留不同的部分,也就是对称差集。
CREATE FUNCTION `array_diff`(`arr1` json, `arr2` json) RETURNS json NO SQL DETERMINISTIC BEGIN RETURN ( WITH A AS (SELECT el FROM JSON_TABLE(arr1, '$[*]' COLUMNS(el INT PATH '$')) T), B AS (SELECT el FROM JSON_TABLE(arr2, '$[*]' COLUMNS(el INT PATH '$')) T) SELECT JSON_ARRAYAGG(el) FROM ( SELECT el FROM A WHERE A.el NOT IN (SELECT el FROM B) UNION SELECT el FROM B WHERE B.el NOT IN (SELECT el FROM A) ) AS T ); END
调用
select array_diff('[1,2,3]','[2,3,4]')
结果
[1, 4]