问题描述
\timing on
DO $$
BEGIN
DECLARE
i INT := 1; -- valeur de départ à changer pour la range d'id
j INT := i + 1;
numberUsers INT; -- Changer valeur numberUsers pour fin de la range d'id
commonSkills INT;
random INT;
idSphere INT := 2;
BEGIN
SELECT COUNT(*) INTO numberUsers FROM "WU_Users"; -- si numberUSers est modifié,commentez la ligne
WHILE i < numberUsers LOOP
WHILE j <= numberUsers LOOP
IF i !=j THEN
SELECT floor(random() * 10 + 35)::INT INTO random;
INSERT INTO "WU_MatchingUsers"("IDWU_User1","IDWU_User2","Matchingscore")
VALUES(i,j,random)
ON CONFLICT ("id")
DO
UPDATE SET "Matchingscore" = EXCLUDED."Matchingscore";
ELSE
RAISE NOTICE 'Same Users';
END IF;
j := j + 1;
END LOOP;
j := i + 1;
RAISE NOTICE 'i: %',i;
i := i + 1;
END LOOP;
END;
END $$;
\timing off
所以这段代码需要两个 id,并通过两个循环从 i 到 numberUsers 并插入一个随机匹配分数到另一个表中,现在我需要添加这个:
SELECT "IDWU_Users_WU_Users" FROM "WU_UseRSSpheres" WHERE "IDWU_UseRSSpheres" = idSphere;
这一行返回我需要匹配的另一个表中的 id 列表,就像上面的脚本一样,我按此顺序匹配:
1/2
1/3
等等等等
但是现在这个新行可以像这样返回我的 id :
532
1426
3236
84697
而且我需要制作与以前相同的匹配系统,就像这样:
532/1426
532/3236
532/84697
亲切的问候!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)