首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用多个表(如查询CodeIgniter )搜索结果

使用多个表(如查询CodeIgniter )搜索结果
EN

Stack Overflow用户
提问于 2018-03-16 06:05:56
回答 2查看 1.5K关注 0票数 0

CodeIgniter / PHP / MYSQL

我有两张这种结构的桌子。

  1. 国家: id,country_name (1,印度尼西亚,2,印度)
  2. 国家: id,country_id,state_name (1,1,Sulawesi Selatan) (2,1,Sulawesi Tengah) (3,1,Sumatera Utara) (4,2,古吉拉特邦)

我想用多张桌子搜索。

例如,如果我输入"si“,它将给出如下结果

印度尼西亚-苏拉威西-塞拉坦

印度尼西亚

印度,古吉拉特邦

如何在codeingniter查询中找到这个结果:我正在尝试这个查询:

代码语言:javascript
复制
SELECT ts.id,ts.state_name,tc.country_name 
FROM STATE ts 
LEFT JOIN COUNTRY tc 
ON tc.id = ts.country_id 
WHERE ts.state_name LIKE '%si%' || tc.country_name LIKE '%si%'

我使用这个查询的输出:

苏拉威西·塞拉坦-印度尼西亚

苏拉威西·腾加-印度尼西亚

苏门答腊岛-印度尼西亚

EN

回答 2

Stack Overflow用户

发布于 2018-03-16 06:39:31

使用or_like() / orlike()可以获得更多信息,请参阅:record.html

代码语言:javascript
复制
$this->db->select("ts.id,ts.state_name,tc.country_name");
$this->db->from("STATE ts")
$this->db->join("COUNTRY tc","tc.id = ts.country_id","Left");
$this->db->like('ts.state_name', $word);
$this->db->or_like('tc.country_name',$word);
票数 1
EN

Stack Overflow用户

发布于 2018-03-16 06:25:06

您可以尝试以下代码:

控制器

代码语言:javascript
复制
public function search_general_medicine() {

        ini_set("memory_limit", "512M");
        $keyword = $this->input->post('keyword');
        $medical_id = $this->input->post('medical_id');

        if ($keyword != '' && $medical_id != '') {
            $result_medicine = $this->ws->get_medicine_details($keyword);
            print_r($result_medicine);
    }

模型

代码语言:javascript
复制
function get_medicine_details($keyword)
    {

        $query = "SELECT * FROM (
  SELECT medicine_id, medicine_name,medicine_package,medical_id,'g' FROM tbl_general_medicine
    UNION
  SELECT medicine_id, medicine_name,medicine_package,medical_id,'c' FROM tbl_medicine
  ) AS t
WHERE  medicine_name LIKE '%" . $keyword . "%' limit 20;";

        $result_medicine = $this->db->query($query);


        if ($result_medicine->num_rows() > 0) {
            return $result_medicine->result_array();
        } else {
            return array();
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49314184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档