我的数据库中有一个表来跟踪规范:
| specs |
id
spec_name
url
common_spec
notes
此表中有大约 8,000 个规格。我经常使用这些规格中的大约 100 种,而其余的我需要手头以防万一需要使用它们。我使用 DataTables 来显示标记为 common_spec 的规范。这些规范在 common_spec 列中有一个“1”。我有一个结构如下的表:
<?php $specs = $specslist->get_specs(); ?>
<table id='commonSpecs'>
<thead>
<tr>
<th>Spec Name</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<?php foreach($specs as $spec): ?>
<tr>
<td><?php echo $spec['spec_name']; ?></td>
<td><?php echo $spec['notes']; ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<script>
$(document).ready(function() {
$('#commonSpecs').dataTable({
"bJQueryUI" : true,
"sPaginationType" : "full_numbers",
"iDisplayLength" : 100
});
</script>
MySQL查询是:
public function get_specs(){
$query = $this->db->prepare("
SELECT specs.url, specs.spec_name, specs.notes, specs.id FROM specs WHERE specs.common_spec = 1 GROUP BY specs.id ORDER BY specs.spec_name");
$query->execute();
return $query->fetchAll();
}
当我第一次打开页面时,我试图在表格中显示这 100 个标记为常见规格的规格,但允许搜索包含 8,000 个规格的整个表格。
谁能给我一个方向?这甚至可能吗?
提前致谢。
编辑
这里的想法是避免从表中加载所有行,只加载最初满足某些条件的行(是 common_spec),然后在/如果初始集没有规范时允许搜索整个表. 希望这一切都有意义。