【发布时间】:2014-08-03 22:59:11
【问题描述】:
我正在尝试使用我创建的父路径从我的类别表中获取结果。 当我使用手动数据启动请求时,它运行良好。 当我使用子查询动态尝试相同的请求时,我只得到一个结果而不是预期的 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)
提前致谢,
问候,
【问题讨论】:
-
这是因为
t.path是varchar列,而不是INT。 -
请参阅 FIND_IN_SET(),尽管此类问题可能是设计不佳的症状。也就是说,物化路径是一种公认的策略。
标签: mysql sql subquery where-in in-subquery