实体Product (映射到表product)具有以下字段:
创建date)
我需要在每个页面中创建一个带有20元素的分页仪表板(没有重复的)。现在,我正在执行三个不同的查询来提取,然后将下列项合并到一个列表中:
WHERE id NOT IN
WHERE id NOT IN的查询中的I
我想要创建一个单独的查询来提取之前的20个条目。有可能吗?
我正在使用MySQL与Doctrine (Symfony),我会感兴趣的原则兼容的解决方案。
发布于 2020-07-13 14:36:46
我认为在一个查询中不可能做到这一点。如果总帖子数量有限(就像仪表板上只有100个帖子一样),我将使用数组方法的组合。
发布于 2020-07-13 15:55:07
这需要使用UNION,这意味着您不能有与理论兼容的解决方案。
核心方法将与您在应用程序级别上所做的相同,除了丑陋。为了得到完全相同的行为,你必须做如下的事情
SELECT [text of first query]
UNION
SELECT [text of second query]
WHERE `id` NOT IN (
SELECT `id` FROM (SELECT [text of first query])
)
UNION
SELECT [text of third query]
WHERE `id` NOT IN (
SELECT `id` FROM (SELECT [text of first query])
)
AND `id` NOT IN (
SELECT (SELECT `id` FROM [text of second query])
)这意味着第一个查询独立执行三次,第二个查询执行两次。
https://stackoverflow.com/questions/62878135
复制相似问题