专题文献的sql效率提升

This commit is contained in:
wlx 2014-05-15 16:02:23 +00:00
parent feb6fc5fc6
commit 4c03869064
1 changed files with 6 additions and 5 deletions

View File

@ -221,14 +221,14 @@ class Reference
public function fetchThemeReferences($code) public function fetchThemeReferences($code)
{ {
$wheresql = array(); $wheresql = array();
$wheresql[] = " s.code='$code' "; //$wheresql[] = " s.code='$code' ";
if(!empty($this->keyword)) if(!empty($this->keyword))
{ {
$wheresql[] = " (ref.title LIKE '%{$this->keyword}%' OR ref.reference LIKE '%{$this->keyword}%') "; $wheresql[] = " (ref.title iLIKE '%{$this->keyword}%' OR ref.reference iLIKE '%{$this->keyword}%') ";
} }
if(count($wheresql)>0) if(count($wheresql)>0)
{ {
$wheresql = " WHERE ".join(" AND ",$wheresql); $wheresql = " and ".join(" AND ",$wheresql);
}else{ }else{
$wheresql = ""; $wheresql = "";
} }
@ -240,9 +240,10 @@ class Reference
$order = "ref.{$this->order} {$this->sort}"; $order = "ref.{$this->order} {$this->sort}";
} }
$sql="select distinct ref.* from mdref r left join {$this->table->reference} ref on r.refid=ref.id $sql="select distinct ref.* from {$this->table->reference} ref where ref.id in (select r.refid from mdref r
left join datasource ds on r.uuid=ds.uuid left join {$this->table->source} s on s.id=ds.sourceid left join datasource ds on r.uuid=ds.uuid left join {$this->table->source} s on s.id=ds.sourceid
$wheresql where s.code='$code')
$wheresql
ORDER BY $order"; ORDER BY $order";
$rs=$this->db->query($sql); $rs=$this->db->query($sql);
return $rs->fetchAll(); return $rs->fetchAll();