组合多个高级 mysql select 查询的最佳方式

2023-12-25

我有来自同一数据库上不同表的多个选择语句。我使用多个单独的查询,然后加载到我的数组并排序(同样,在查询中排序后)。

我想合并到一个语句中以加快结果速度并使其更容易“加载更多”(见底部)。

每个查询使用 SELECT、LEFT JOIN、WHERE 和 ORDER BY 命令,这些命令对于每个表都不相同。

我可能不需要在每个语句中进行排序,但我希望最终结果最终按表示时间的字段进行排序(不一定是所有表中的相同字段名称)。

我想将查询结果总数限制为一个数字,在我的例子中为 100。

然后,我使用循环遍历结果,并为每一行测试 OBJECTNAME_ID(即 comment_id、event_id、upload_id)是否设置,然后 LOAD_WHATEVER_OBJECT 获取该行并将数据推送到数组中。

之后我不必对数组进行排序,因为它是通过 mysql 按顺序加载的。

稍后在应用程序中,我将通过跳过前 100、200 或任何页面*100 来“加载更多”,并使用相同的查询再次限制 100。

数据库的最终结果将类似于“这样”:

结果 - 从表中选择的字段 - 用于排序的字段是最大的 结果 - 从可能不同的表中选择的字段 - 要排序的字段是下一个最大的 结果 - 从可能不同的表中选择的字段 - 要排序的字段是第三大的 等等,等等

我看到很多更简单的组合语句,但没有像这样的。

任何帮助将不胜感激。


最简单的方法可能是这里的 UNION (http://dev.mysql.com/doc/refman/5.0/en/union.html http://dev.mysql.com/doc/refman/5.0/en/union.html ):

(SELECT a,b,c FROM t1)
UNION
(SELECT d AS a, e AS b, f AS c FROM t2)
ORDER BY a DESC
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

组合多个高级 mysql select 查询的最佳方式 的相关文章

随机推荐