Mysql 使用的SELECT语句在codeigniter中具有不同的列数
错误号码:1222Mysql 使用的SELECT语句在codeigniter中具有不同的列数,mysql,codeigniter,Mysql,Codeigniter,错误号码:1222 使用的SELECT语句具有不同的列数 这是控制器 <?php class Autocomplete extends CI_Controller{ function __construct() { parent::__construct(); $this->load->model('datacomplete'); } public function
使用的SELECT语句具有不同的列数 这是控制器
<?php
class Autocomplete extends CI_Controller{
function __construct() {
parent::__construct();
$this->load->model('datacomplete');
}
public function index(){
$this->load->view('view_demo');
}
public function GetCountryName(){
$keyword=$this->input->post('keyword');
$data=$this->datacomplete->GetRow($keyword);
echo json_encode($data);
}
}
?>
这是一个模型
<?php
class Datacomplete extends CI_Model{
public function GetRow($keyword) {
$this->db->select('collg_name,city,state,country as type');
$this->db->from('tbl_college');
$this->db->like("collg_name",$keyword);
$this->db->or_like('city',$keyword,'after');
$this->db->or_like('state',$keyword,'after');
$this->db->or_like('country',$keyword,'after');
$query1 = $this->db->get_compiled_select();
$this->db->select('course_offrd_name,category_name,subcategory_name');
$this->db->from('tbl_course_offered');
$this->db->like("course_offrd_name",$keyword);
$this->db->or_like('category_name',$keyword,'after');
$this->db->or_like('subcategory_name',$keyword,'after');
$query2 = $this->db->get_compiled_select();
$result = $this->db->query($query1." UNION ".$query2);
return $result->result();
}
}
您必须在选择语句中使用相同的列号,如下所示
首先选择使用4列:
$this->db->select('collg_name,city,state,country as type');
second select you use 3 columns :
$this->db->select('course_offrd_name,category_name,subcategory_name');
class Datacomplete extends CI_Model{
public function GetRow($keyword) {
$this->db->select('collg_name,city,state,country as type');
$this->db->from('tbl_college');
$this->db->like("collg_name",$keyword);
$this->db->or_like('city',$keyword,'after');
$this->db->or_like('state',$keyword,'after');
$this->db->or_like('country',$keyword,'after');
$query1 = $this->db->get_compiled_select();
$this->db->select('course_offrd_name,category_name,subcategory_name, null as type');
$this->db->from('tbl_course_offered');
$this->db->like("course_offrd_name",$keyword);
$this->db->or_like('category_name',$keyword,'after');
$this->db->or_like('subcategory_name',$keyword,'after');
$query2 = $this->db->get_compiled_select();
$result = $this->db->query($query1." UNION ".$query2);
return $result->result();
}
}
在中,$result=$this->db->query($query1.“UNION”。$query2);'代码>您正在组合2个表结果,但在第一个表中您正在选择4
列&在第二个表中您正在选择3列
当您使用UNION
进行组合时,它将生成记录&这里两个表列不同,列计数也不同。要使用UNION,必须选择相同的列计数&如果可能,则只选择相同的列
在上述情况下,bcz发生错误:
+ collg_name + city + state + type +
---------------------+------------+------+-------+------+
1st table record + A + b + c + d +
---------------------+------------+------+-------+------+
2nd table record + x + y + z + - +
第二个表没有最后一列值
在以下条件下执行联合:
SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;
结果:
+ City +
1st tbl | city1|
1st tbl | city2|
2st tbl | city3|
在控制台中,我收到此错误,加载资源失败:服务器响应状态为500(内部服务器错误)autocomplete/GetCountryName:1在union all select中,列数相同,第一个选择中有4列,第二个选择中有3列select@M.Hemant在uniuon all中选择相同的列数?不understood@M.Hemant选择列的数量是有限制的……我必须做些什么才能使它正常工作?你用相同数量的列尝试过吗?两个select必须有3列
+ City +
1st tbl | city1|
1st tbl | city2|
2st tbl | city3|