下表列出了使用说明书中的主题。除了作为根的var array = ["Anna 0.4", "Peter 0.25", "Anna 0.5", "Peter 0.5", "Peter 0.33", "Foo 1.08"],
count = Object.create(null),
winner;
array.forEach(s => {
var [k, v] = s.split(' ');
count[k] = (count[k] || 0) + +v;
});
winner = Object
.keys(count)
.reduce((r, k) => {
if (!r || count[k] > count[r[0]]) {
return [k];
}
if (count[k] === count[r[0]]) {
r.push(k);
}
return r;
}, undefined);
console.log(winner);
console.log(count);
的记录id
之外,每个主题都有一个父主题。该应用程序允许除根主题之外的所有主题都更改父级,我将需要阻止将祖先分配为其自身的后代。
例如,记录#2的父级不应从1
更改为1
。
如何确定记录是否是另一条记录的后代?我宁愿不“硬编码”后代的数量。请注意,我实际上正在使用mariaDB。
7
答案 0 :(得分:0)
如果id
为6的记录是id
为2的记录的后果,则以下查询将返回大于零的计数。
WITH RECURSIVE ancestors AS (
SELECT * FROM manual WHERE id=2
UNION
SELECT m.*
FROM manual m
INNER JOIN ancestors a ON a.id=m.parent_id
)
SELECT COUNT(*) FROM ancestors WHERE id=6;