gpt4 book ai didi

mysql - 在mysql中选择不同的元组

转载 作者:行者123 更新时间:2023-11-29 10:41:32 24 4
gpt4 key购买 nike

我很难推理问题:

鉴于此表:

+------+------------+| id   | sibling_id |+------+------------+|    1 |       NULL ||    2 |          3 ||    3 |          2 ||    4 |          5 ||    5 |          4 |+------+------------+

如果我选择 ids (1,2,3,5),我只想获取 (1,2,4) code>,因为 3 指向 2,而 2 指向 3,所以我只想要两者之一。

预期输出:

+------+------------+| id   | sibling_id |+------+------------+|    1 |       NULL ||    2 |          3 ||    4 |          5 |+------+------------+

如何使用 mysql (5.7) 做到这一点?

解决方案:

从测试中选择不同的最小(id,coalesce(sibling,id)),其中id位于(1,2,3,5);

谢谢大家!

最佳答案

您必须确保元组始终相同(意味着例如始终是 (2,3) 而不是 (3,2))。为此,您可以始终将较小的值放在元组的前面,将较大的值放在元组的末尾。使用 LEAST()GREATEST() 来实现。

SELECT 
DISTINCT
LEAST(id, sibling_id), GREATEST(id, sibling_id)
FROM table
WHERE id IN (1,2,3,5);

关于mysql - 在mysql中选择不同的元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45375718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com