繁体   English   中英

另一个查询中的MySQL查询

[英]MySQL query within another query

我正在使用一个称为DataTables的jQuery插件( 服务器端处理 )。 问题在于它限制了您形成查询的方式。 默认方法如下所示。

$sQuery = "
    SELECT SQL_CALC_FOUND_ROWS ".str_replace(" , ", " ", implode(", ", $aColumns))."
    FROM   $sTable
    $sWhere
    $sOrder
    $sLimit
";

在仍然使用此约束的情况下,是否可以使用我自己的复杂查询(其中可能包含where子句,join等)? 我需要能够根据情况只是“弹出”一个不同的查询,而不必每次都重写整个内容。

我只想拥有一个文件来处理对多个数据表的请求,并且只更改SQL。 如果不清楚,请发表评论。

我认为也许对此没有SQL解决方案。 我可能需要创建一个函数来修改整个内容,具体取决于我的查询。

好了,您的脚本需要返回记录的json列表,同时考虑到http请求参数:

  • 筛选器(sSearch)
  • 排序(iSortCol_ *)
  • 当前页面(iDisplayStart和iDisplayLength)

应用过滤器后,还需要返回总记录数。

如何在服务器端生成该列表取决于您,可以根据需要编写复杂的查询。

允许更复杂的查询同时又尽量减少样板代码的一种方法是将示例的功能包装在类中,但是将选择查询和计数查询提取到方法中。 基类将像您的示例一样返回查询,但是您可以在子类中覆盖该查询,并根据需要返回复杂的查询。 但是在生成它们时,您需要小心考虑过滤器,排序和页面参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM