我试图在This not-yet-accepted pull request找到任何内容但没有成功。
我想要做的是克隆我的查询构建器并重置一些查询部分,如order by或group by。我怎么能这样做?
看起来这个查询部分没有很多可用的方法
并且有明确的方法仅适用于选择和条件。 你是怎么做到的?
示例:
const new_qb = qb
.clone()
// remove group by here
.clearSelect()
.count()
我该怎么做呢?
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/js/bootstrap-select.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/css/bootstrap-select.min.css" />
<select name="ddlCountry" id="Select1" class="selectpicker" data-live-search-style="begins" data-live-search="true">
<?php foreach($location as $loc): ?>
<option value="<?php echo $loc->city.', '.$loc->state;?>" ><?php echo $loc->city.', '.$loc->state;?></option>
<?php endforeach; ?>
</select>
答案 0 :(得分:0)
您可以克隆查询并将零件添加到这些单独的查询中。
像这样:
//base query
let query = knex('table_name').where({id: 1});
const countQuery = query.clone().count();
const selectQuery = query.clone().select().limit(10).offset(0);
return Promise.all([countQuery, selectQuery]);
答案 1 :(得分:0)
要重置查询部分,有一种方法,例如:
this.qb._clearGrouping('order'); // reset order by
this.qb._clearGrouping('group'); // reset group by
等等。