gpt4 book ai didi

mysql - 使用子查询从另一个表读取值列表并检查条件中的位置

转载 作者:行者123 更新时间:2023-11-30 00:51:27 27 4
gpt4 key购买 nike

一个小问题可能很愚蠢,但我不知道如何解决这个问题

select * from customers where id in(select assigned from users where username='test');

在上面的查询中

select assigned from users where username='test'

这将返回 1,2

但是其中的条件不起作用,应该如下所示

select * from customers where id in(1,2);

这不是确切的输出,我只是猜测可能是这样。但事实并非如此,问题正在发生。

我只得到与 1 对应的一行

所以帮我解决这个问题。

请检查下面的sqlfiddle:

http://sqlfiddle.com/#!2/95c28/2

谢谢

最佳答案

SELECT DISTINCT c.*
FROM customers c
JOIN users u ON FIND_IN_SET(c.id, u.assigned) IS NOT NULL

在关系数据库中放置逗号分隔值是一个坏主意,它会让一切变得更加复杂。您应该使用关系表,这样您就可以编写正常的相等连接。上面的查询不能建立索引,所以如果表很大的话效率会很低。

SQLFIDDLE

关于mysql - 使用子查询从另一个表读取值列表并检查条件中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20938308/

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