【问题标题】:l$this->db->like returning all rows instead of just the relevant onesl$this->db->like 返回所有行而不是相关行
【发布时间】:2015-01-09 14:20:40
【问题描述】:

我正在尝试使用 $this->db->like 过滤行,但它会获取 db 中的所有行。

我尝试使用普通查询:

型号:

 function getPostsByTag(){

        $query = "SELECT * FROM mutamba_posts WHERE post_text  LIKE '%Astrix%'";
        $sql = $this->db->query($query);
        if($sql->num_rows > 0 ){
             return $sql->result();

         }

    }

控制器:

 function tag(){
     if($this->session->userdata('is_logged_in')){
         $this->load->model('model_mutamba');
         $data['posts_by_tag'] =  $this->model_mutamba->getPostsByTag();

         $this->load->view("user/mutamba/tag",$data);


     }else{
       redirect("start");
    }

查看:

 if("" != $posts_by_tag){

      foreach($posts_by_tag as $p){ 
       echo '<br>'.$p->post_text;

      }
}          

如果我在LIKE 之前添加Not 子句,它似乎可以工作,因为它会返回除包含$tag 之外的所有内容。

任何灯棚将不胜感激。

【问题讨论】:

  • $tag 的值究竟是什么?如果它是空的,那么您将查询匹配所有行的LIKE '%%'
  • @MichaelBerkowski 它不是空的。即使我改变它,让我们说:SELECT * FROM mutamba_posts WHERE post_text LIKE '%Astrix%'"; 它有点将包含单词 Astrix 的帖子放在结果的顶部,但不排除其他不相关的结果。
  • 如果发生了奇怪的事情,我们将需要查看更多上下文代码。请发布与变量设置位置、语句形成、执行和获取的位置相关的代码。
  • @MichaelBerkowski 刚刚更新了它。

标签: mysql codeigniter sql-like


【解决方案1】:

好吧,我的错,我刚刚注意到有一个分页脚本,它从另一个查询中获取项目,该查询从 db 获取所有内容。所以,我的LIKE 正在工作,但是当滚动达到限制时,它会触发另一个 sql 函数。

感谢您的快速回复

【讨论】:

    猜你喜欢
    • 2014-04-27
    • 1970-01-01
    • 2015-05-05
    • 2016-01-24
    • 2018-06-30
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 2013-11-04
    相关资源
    最近更新 更多