gpt4 book ai didi

mysql - WHERE IN 子查询未按预期工作

转载 作者:行者123 更新时间:2023-11-29 07:59:35 25 4
gpt4 key购买 nike

我正在尝试使用我创建的父路径从类别表中获取结果。当我使用手动数据发起请求 WHERE IN 时,它工作正常。当我使用子查询动态尝试相同的请求时,我只得到一个结果,而不是预期的 4 个结果。我不明白为什么,你能帮助我吗?

http://sqlfiddle.com/#!2/88b68/6

/*Working query*/
SELECT t.id_categorie FROM t
WHERE t.id_categorie IN (1396,1399,1403,1412)

/*Not working by subquery ??*/
SELECT cat.id_categorie FROM t as cat
WHERE
cat.id_categorie IN (SELECT REPLACE(t.path,'.',',') FROM t WHERE t.id_categorie = 1412)

提前致谢,

问候,

最佳答案

in 与逗号分隔列表一起使用并不能达到您想要的效果。即使您使用子查询。你可以试试这个:

SELECT cat.id_categorie
FROM t cat
WHERE EXISTS (SELECT 1
FROM t
WHERE t.id_categorie = 1412 AND
find_in_set(cat.id_categorie, REPLACE(t.path, '.', ',')) > 0
);

我不确定你的数据是什么样的,甚至不确定这个查询应该做什么(子查询与外部查询位于同一个表上似乎很奇怪)。但通常情况下,您希望将内容存储在表中而不是分隔列表中。您会看到,SQL 有一个内置的列表数据结构。它称为表格。

关于mysql - WHERE IN 子查询未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24204381/

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