gpt4 book ai didi

mysql - 使用 MySQL IN 子句返回所有记录,包括重复项

转载 作者:行者123 更新时间:2023-11-29 20:49:40 25 4
gpt4 key购买 nike

假设表中存在 fk 等于 1 和 3,则以下查询将返回两条记录。

SELECT fk, name FROM my_table WHERE fk IN (1,3,1);

我怎样才能返回三个记录:

fk name
1 john
3 mary
1 john

最佳答案

您需要改用join:

select t.fk, t.name
from my_table t join
(select 1 as x union all select 3 union all select 1
) vals
on t.fk = vals.x;

如果您还想保持排序,则使用第二列 - 不能保证 join 之后的行顺序,除非您包含 order by :

select t.fk, t.name
from my_table t join
(select 1 as x, 1 as ordering union all
select 3, 2 union all
select 1, 3
) vals
on t.fk = vals.x
order by vals.ordering;

关于mysql - 使用 MySQL IN 子句返回所有记录,包括重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38170433/

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