gpt4 book ai didi

php - 如何从数据库中的多个表中搜索关键字并且没有公共(public)字段来连接表

转载 作者:行者123 更新时间:2023-11-29 10:31:09 24 4
gpt4 key购买 nike

我想在不同的表中搜索关键字,如果结果可用,那么我需要将该行数据返回到 Codeigniter controller.my 模型函数如下:

public function get_search($match) 
{
$this->db->select('*');
$this->db->like('blog.blog_title',$match);
$this->db->like('casestudy.title',$match);
$this->db->from('blog,casestudy');
$query = $this->db->get();
print_r($this->db->last_query()); exit;
return $query->result();
}

最佳答案

由于两个表之间没有关系,因此进行联接可能没有意义,而您当前所做的是交叉联接。相反,请考虑采用两个表的并集:

$first = DB::table('blog')
->where('blog_title', 'like', '%' . $match . '%')

$second = DB::table('casestudy')
->where('title', 'like', '%' . $match . '%')
->unionAll($first)
->get();

此答案假设您要对每个表执行 SELECT *,这又意味着两个表的列具有相同的类型和顺序。如果情况并非如此,那么您可以通过选择您想要成为联合查询一部分的特定列来完善我上面所写的内容。

为了可读性,我想到的原始查询是这样的:

SELECT * FROM blog WHERE blog_title LIKE '%'.$match.'%'
UNION ALL
SELECT * FROM casestudy WHERE title LIKE '%'.$match.'%';

关于php - 如何从数据库中的多个表中搜索关键字并且没有公共(public)字段来连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47386091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com