我將不同的表名存在了一個數據表,這些表名對應的數據表的列都是一致的,現在的要求是,把這些表裏面的數據按照篩選條件篩出來。
$list = Db::table("v_software_list")->where('delete', 1)->field('field_js')->select();
$select = '';
foreach ($list as $key => $val) {
if ($key == 0) {
$sqlField = $val['field_js'];
$select = Db::table($sqlField)->comment($sqlField)->field('id,content,title,states,create_time,update_time,desc,delete,sql');
} elseif($key == count($list) - 1) {
$sqlField = $val['field_js'];
$sql = Db::table($sqlField)->comment($sqlField)->field('id,content,title,states,create_time,update_time,desc,delete,sql')->where(handle($data))->buildSql();
$select = $select->union([$sql])->buildSql();
} else {
$sqlField = $val['field_js'];
$sql = Db::table($sqlField)->comment($sqlField)->field('id,content,title,states,create_time,update_time,desc,delete,sql')->where(handle($data))->buildSql();
$select = $select->union([$sql]);
}
}
$getlist = Db::table($select." a")->select();
不知道這樣的運行速度怎麼樣,暫時只能這樣了…