【问题标题】:Getting records based on WHERE AND LIKE Logical Operators in SQLSQL中基于WHERE AND LIKE逻辑运算符获取记录
【发布时间】:2021-09-24 04:45:07
【问题描述】:

我在这里有一张restaurant 的桌子,里面有餐厅记录。

表架构

  `id` int(11) NOT NULL,
  `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `cuisine` longtext COLLATE utf8_unicode_ci,
  `street_no` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
  `street_name` varchar(75) COLLATE utf8_unicode_ci DEFAULT NULL,
  `city` varchar(75) COLLATE utf8_unicode_ci DEFAULT NULL,
  `place_id` longtext COLLATE utf8_unicode_ci,
  `address` longtext COLLATE utf8_unicode_ci, 
  `latitude` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `longitude` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `status` int(11) DEFAULT '0',
  `created_at` int(11) DEFAULT NULL,
  `updated_at` int(11) DEFAULT NULL,

在这里,我正在尝试根据这些列获取餐厅 cityaddressstatus

这里如果 status=0 表示餐厅处于待处理状态 如果 status=1 表示餐厅处于已批准状态

我的方法:

 /**
 * GET RESTAURANT USING CITY OR ADDRESS
 *
 */
public function get_restaurant_by_city($city, $address="", $page_per_row, $pagenum)
{
    
    $this->db->where('status', 1)->like('cit', $city, 'both')->or_like('address', $address, 'both'); //both = %query%, before = %query, after = query%

   if (isset($pagenum) && $pagenum !== 0) {
     $pagenum  = ($pagenum - 1) * $page_per_row;
   }else { 
       if(isset($_GET['page'])) {
         $pagenum  = ($pagenum + 1) * $page_per_row;
       }else {
        $pagenum  = 0;
       }
   }

    $find  = $this->db->get($this->table, $page_per_row , $pagenum);
    return $find->result();
}

问题: 申请$this->db->where('status', 1) 后,我仍然得到有status=0 的记录。如果有人指导我如何以完美的方式编写 SQL 查询以获得所需的结果,那就太好了。

使用演示数据:

city 露台

address 4332 Lakelse Ave, Terrace, BC V8G 1N8, Canada

【问题讨论】:

标签: php sql codeigniter


【解决方案1】:

归功于@Devsi Odedra

这是我的问题的解决方案。

 $this->db->group_start()   
            ->like('city', $city, 'both')
            ->or_like('address', $address, 'both')//both = %query%, before = %query, after = query%
            ->group_end()
            ->where('status', 1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 2016-07-18
    • 1970-01-01
    • 2023-01-31
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多