ThinkPHP学习笔记(四)之SQL的多种查询方式

本人学习的Thinkphp版本为3.1.2,为比较早的版本,是在网易云课堂上跟着赵桐正老师学习的,视频地址http://study.163.com/course/courseMain.htm?courseId=266024
本文是个人学习笔记,属于原创,转载请注明出处。

1.普通查询方式

  • 字符串

    $arr = $m->where("age=1 and name = '张三' ")->find();//单条条件查询
    
  • 数组(推荐)

    $data["age"] = 0;
    $data["name"] = "张三";
    $arr = $m->where($data)->find();
    //采用数组的方式进行单条条件查询,数组默认采用的是and
    //若想要使用or关系,需要添加数组$data["_logic"] = "or";
    

2.表达式查询方式

  • 判断查询

    $data["id"] = array("GT",6);
    $arr = $m->where($data)->select();//查询所有id>6的记录
    //大小写不区分
    EG 等于
    NEQ 不等于
    GT 大于
    EGT 大等于
    LT 小于
    ELT 小等于
    
  • 模糊查询

    • like

      $data["name"] = array("like","张%");
      $arr = $m->where($data)->select();//查询所有姓“张”用户的记录
      
    • notlike(不含空格)

      $data["name"] = array("notlike","张%");
      $arr = $m->where($data)->select();//查询所有姓“张”用户的记录
      
    • or关系

      $data["name"] = array("like",array("张%","李%","王%"));
      $arr = $m->where($data)->select();//查询所有姓“张”或者姓“李”、"王"的用户的记录
      
    • and关系

      $data["name"] = array("like",array("张%","李%"),"and");
      $arr = $m->where($data)->select();//查询所有姓“张”或者姓“李”的用户的记录
      注意:如果一个字段要匹配多个通配符
      
    • Between

      $data["id"] = array("between",array(5,7));
      $arr = $m->where($data)->select();//查询所有id在5-7之间的记录的用户的记录
      
    • Not Between //必须得有空格

      $data["id"] = array("not between",array(5,7));
      $arr = $m->where($data)->select();//查询所有id在5-7之间的记录的用户的记录
      
    • In

      $data["id"] = array("in",array(5,6,7));
      $arr = $m->where($data)->select();//查询所有id在5,6,7三个之间的记录的用户的记录
      
    • Not In//必须得有空格

      $data["id"] = array("not in",array(5,6,7));
      $arr = $m->where($data)->select();//查询所有id不在5,6,7三个之间的记录的用户的记录
      

3.区间查询

$data["id"] = array(array("GT",5),array("LT",10));
$arr = $m->where($data)->select();//查询所有id>5 and id<10的用户的记录

$data["id"] = array(array("GT",5),array("LT",10),"or");
$arr = $m->where($data)->select();//查询所有id>5 or id<10的用户的记录

$data["name"] = array(array("like","张%"),array("like","李%"),“王五”,"or");
$arr = $m->where($data)->select();//查询所有姓“张”或者姓“李”或者叫"王五"的用户的记录

4.统计查询

  • Count

    $m = M("User");
    $c = $m->count();//所有记录数量
    $data["name"] = "张三"
    $c = $m->where($data)->count();//name为"张三"的记录数量
    
  • Max

    $c = $m->max("id");//id最大的值
    
  • Min

    $c = $m->min("id");//id最小的值
    
  • Avg

    $c = $m->avg("id");//id平均值
    
  • Sum

    $c = $m->sum("id");//id总和
    

5.SQL直接查询

  • query主要处理读取数据操作

    $m = M();
    $result = $m->query( "select * from user where id > 5");
    //成功返回数据的结果集,失败返回boolean false
    
  • execute用于更新和写入操作

    $m = M();
    $result = $m->execute("insert into user('username') values ("heavn)");
    //成功返回受影响行数,失败返回boolean false
    

猜你喜欢

转载自blog.csdn.net/qq_38137411/article/details/81287790