- Seme Framework
- versi 4.0.3 (ID)
- Persyaratan
- Download & Install
- Pengaturan
- Tutorial
- Perutean URI
- Konstanta
- Variabel Global
- Model
- View
- Controller
- Library
- CLI (command line interface)
- Core
- ABAC
Metode Union Order By
Metode union_order_by digunakan untuk menyusun hasil tarikan data berdasarkan nama kolom dan arah susunan dengan cara mengeksekusi perintah SQL ORDER BY expression direction dan menyimpannya pada Union Query Buffer.
Bentuk Umum
Berikut ini adalah bentuk umum metode union_order_by dari properti $db yang ada di kelas SENE_Model.
$this->db->group_by(string $column_name, string $sort_direction): $this->dbParameter
Metode ini terdiri dari 2 parameter wajib.
$column_name
Nilai dari $column_name dapat diisi dengan nama kolom atau fungsi database.
$sort_direction
Nilai dari $sort_direction dapat berupa:
ascuntuk pengurutan dari nilai terkecil,descuntuk pengurutan dari nilai terbesar
Contoh
Berikut adalah implementasi kode sumber dari metode union_order_by di kelas model.
<?php
class Blog_Model extends SENE_Model{
public $table = 'd_blog';
public $table_alias = 'b';
public function __construct(){
parent::__construct();
$this->db->from($this->table,$this->table_alias);
}
public function searchByScore($keyword){
$this->db->union_flush();
//1st union
$this->db->select('id');
$this->db->select('title');
$this->db->select('excerpt');
$this->db->select('date_modified');
$this->db->select_as("3",'score');
$this->db->from($this->table,$this->table_alias);
$this->db->where('title',$keyword,'or','like',1,0);
$this->db->where('excerpt',$keyword,'or','like',0,1);
$this->db->union_create();
//2nd union
$this->db->select('id');
$this->db->select('title');
$this->db->select('excerpt');
$this->db->select('date_modified');
$this->db->select_as("2",'score');
$this->db->from($this->table,$this->table_alias);
$this->db->where('title',$keyword,'or','like%',1,0);
$this->db->where('excerpt',$keyword,'or','like%',0,1);
$this->db->union_create();
//3rd union
$this->db->select('id');
$this->db->select('title');
$this->db->select('excerpt');
$this->db->select('date_modified');
$this->db->select_as("1",'score');
$this->db->from($this->table,$this->table_alias);
$this->db->where('title',$keyword,'or','%like',1,0);
$this->db->where('excerpt',$keyword,'or','%like',0,1);
$this->db->union_create();
//4th union
$this->db->select('id');
$this->db->select('title');
$this->db->select('excerpt');
$this->db->select('date_modified');
$this->db->select_as("0",'score');
$this->db->from($this->table,$this->table_alias);
$this->db->where('title',$keyword,'or','%like%',1,0);
$this->db->where('excerpt',$keyword,'or','%like%',0,1);
$this->db->union_create();
$this->db->union_select('id,title,date_modified,score','score');
$this->db->union_group_by('id');
$this->db->union_order_by('score','desc')->union_limit(1, 14);
return $this->db->union_get();
}
}