CodeIgniter / PHP / MYSQL
我有两张这种结构的桌子。
我想用多张桌子搜索。
例如,如果我输入"si“,它将给出如下结果
印度尼西亚-苏拉威西-塞拉坦
印度尼西亚
印度,古吉拉特邦
如何在codeingniter查询中找到这个结果:我正在尝试这个查询:
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%'我使用这个查询的输出:
苏拉威西·塞拉坦-印度尼西亚
苏拉威西·腾加-印度尼西亚
苏门答腊岛-印度尼西亚
发布于 2018-03-16 06:39:31
使用or_like() / orlike()可以获得更多信息,请参阅:record.html
$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);发布于 2018-03-16 06:25:06
您可以尝试以下代码:
控制器
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);
}模型
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();
}
}https://stackoverflow.com/questions/49314184
复制相似问题