我有一个查询,其中列出了数据库中的10个不同项目。
在此查询中,我有一个嵌套查询,对于上面列出的每个1-10项,它在另一个表中查找相关的子类别。
最终,发生了11次查询。 1遍历主要类别,另外10个查询和输出每个类别。
问题是,它们共同输出重复的值。
由于它完成了超过10个查询,我无法使用DISTINCT
,因为即使输出在其自己的查询中是不同的,它在整个组中也不是明显的。
那么我怎样才能确保我这样的多查询列表是唯一的? js或php有内置函数可以做到吗?
答案 0 :(得分:2)
您的代码实际上无法扩展。您已经达到了大量的查询,想象一下,如果您有100个项目......
相反,考虑在原始查询中创建子查询,因为这将允许您只运行一个查询,并且MySQL引擎可以更轻松地完成所有紧急工作(因为它知道您实际要求的是什么)。 / p>
如果可能,请使用JOIN
,并密切关注索引。如果没有看到一些代码,我真的无法提供更多帮助,但这应该会有所帮助,因为DISTINCT
会突然再次使用。
答案 1 :(得分:0)
实际上,我找到了一种解决方法,而无需重新编写代码。我只是使用非重置增量$ array [$ i]将所有查询的整个输出放入同一个数组中,然后使用php的array_unique。 :)。 PHP是一种多才多艺的语言。我的谦逊(noob)意见。