【问题标题】:how to put limit in normal sql query如何在正常的sql查询中设置限制
【发布时间】:2015-09-22 09:40:14
【问题描述】:

我想把limit 10放在这里

function getArticles($search_key,$pub_status)       
{ 
    $sql="SELECT * FROM (`ms_article`) ";
    if($search_key != '')
    {
        $sql.="WHERE  (";
        $words = explode(" ",$search_key);       
        for($i=0;$i<count($words);$i++)
        {
            $title_con.="`article_title` LIKE '%".$words[$i]."%' OR";
            $abstract_con.="`article_abstract` LIKE '%".$words[$i]."%' OR";
            $keywords_con.="`article_keywords` LIKE '%".$words[$i]."%' OR"; 
        }
        $sql.=$title_con.$abstract_con.substr($keywords_con, 0, -2).") AND  (`article_status` = 1 ";   
    } else{
        $sql.="WHERE (`article_status` = 1 ";
    }            

    if($pub_status==0){
       $sql.="AND `private_status` <> 1";
    }
    $sql.=")"; 
    $result=$this->db->query($sql) ;   
    // echo[$result];
    // return $result;  
}

但我不知道该查询中的限制附加。 我在哪里可以放置它以及如何在 codeigniter 中回显查询?

【问题讨论】:

    标签: php mysql sql codeigniter


    【解决方案1】:

    在查询末尾附加 Limit 然后 echo 它:

    $sql.=")";
    $sql.=" LIMIT 10";// added limit at last of query
    echo $sql; //printing generated query
    $result=$this->db->query($sql) ;
    

    【讨论】:

      【解决方案2】:

      试试这个代码可能对你有用。

      $sql.=")";
      $sql.=" LIMIT 0,10";
      echo $sql;
      $result=$this->db->query($sql) ;
      

      【讨论】:

        【解决方案3】:

        直接从文档中提取:http://www.codeigniter.com/user_guide/database/examples.html#standard-query-with-single-result

        但这也取决于您使用的数据库。例如,LIMIT 语法适用于 PostgreSQL、MySQL、SQLite,但 sqlserver (Microsoft) 则完全不同

        【讨论】:

          【解决方案4】:

          您可以像这样在查询末尾添加限制:

          $sql.=")";
          $sql.=" LIMIT 10, 0";   // added limit of 10 and offset 0 
          echo $sql;              //printing generated query
          $result=$this->db->query($sql) ;
          

          在您的情况下,您只是将查询构建成一个字符串,这样您就可以回显该字符串以查看最终查询。

          但是,当使用 Codeigniter 的查询生成器时,您可以使用以下命令检查最后执行的查询:

          $this->db->last_query();
          

          我通常将这些功能之王放在一个单独的帮助文件中,这对于以后调试任何代码片段都很有用,如下所示:

          function q($die = true){
            $ci =& get_instance();
            echo $ci->db->last_query();
            if($die) die('<br>----------Query Ends here--------<br>');
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-02-13
            • 1970-01-01
            • 1970-01-01
            • 2017-08-11
            • 2011-03-08
            • 2017-12-27
            • 2017-02-04
            • 2013-04-03
            相关资源
            最近更新 更多