[PHP] 查询技巧 →→→→→进入此内容的聊天室

来自 , 2020-11-19, 写在 PHP, 查看 109 次.
URL http://www.code666.cn/view/3cfbdf46
  1. 一、带where条件的普通查询
  2.    
  3. 1、字符串形式
  4.  
  5. $user=M('user');
  6. $list=$user->where('id>5 and id<9')->select();
  7. $list=$user->where($data)->select();
  8.  
  9. 2、数组形式
  10.  
  11. $user=M('user');
  12. $list=$user->where(array('username'=>'www.phpernote.com'))->select();
  13. $list=$user->where($data)->select();
  14.  
  15. 3、对象形式
  16.  
  17. $user=M('user');
  18. $a=new stdClass();
  19. $a->username='www.phpernote.com';
  20. $list=$user->where($a)->select();  
  21.  
  22. 4、查询表达式
  23.  
  24. EQ              等于
  25. NEQ             不等于
  26. GT              大于
  27. EGT             大于等于
  28. LT              小于
  29. ELT             小于等于
  30. LIKE            等价与sql中的like
  31. [NOT] BETWEEN   查询区间
  32. [NOT] IN        查询集合
  33. EXP             指使用标准SQL语句,实现更加复杂的情况
  34.  
  35. 语法格式:$data['字段名']=array('是表达式','查询条件');
  36.  
  37. 例如
  38.  
  39. $data['username']='www.phpernote.com';
  40.  
  41. 实际上是指
  42.  
  43. $data['username']=array('eq','www.phpernote.com');
  44.  
  45. $data['username']=array('like','peng%');
  46. $list=$user->where($data)->select();
  47.  
  48. $data['username']=array(array('like','p%'),array('like','h%'),'or');
  49. $list=$user->where($data)->select();
  50.  
  51. 二、区间查询
  52.  
  53. $user=M('user');
  54. $data['id']=array(array('gt',20),array('lt',23),'and');
  55. $list=$user->where($data)->select();
  56.  
  57. 三、组合查询
  58.  
  59. $user=M('user');
  60. $data['username']='pengyanjie';
  61. $data['password']=array('eq','pengyanjie');
  62. $data['id']=array('lt',30);
  63. $data['_logic']='or';
  64. $list=$user->where($data)->select();
  65. dump($list);
  66.  
  67. 四、复合查询
  68.  
  69. $user=M('user');
  70. $data['username']=array('eq','pengyanjie');
  71. $data['password']=array('like','p%');
  72. $data['_logic']='or';
  73. $where['_complex']=$where;
  74. $where['id']=array('lt',30);
  75. $list=$user->where($data)->select();
  76.  
  77. 相当于
  78.  
  79. (id<30) and ((username=pengyanjie) or (password like p%))
  80.  
  81. 五、统计查询
  82.  
  83. echo $user->count();
  84. echo '<br>';
  85. echo $user->max('id');
  86. echo '<br>';
  87. echo $user->where('id<30')->min('id');
  88. echo '<br>';
  89. echo $user->avg('id');
  90. echo '<br>';
  91. echo $user->sum('id');
  92.  
  93. 六、定位查询
  94.  
  95. $user=new AdvModel('user');//实例化高级模型AdvModel
  96. //$user=M('user','CommonModel');//或者将AdvModel用CommonModel来继承
  97. $list=$user->order('id desc')->getN(2);//返回结果中的第三条
  98. $list=$user->order('id desc')->last();//返回最后一条
  99. $list=$user->order('id desc')->first();//返回第一条
  100.  
  101. 七、SQL查询
  102.  
  103. excute()主要用于更新和写入
  104.  
  105. $Model=new Model()  //  实例化一个 model 对象,没有对应任何数据表
  106. $Model->execute("update think_user set name='thinkPHP' where status=1");
  107.  
  108. query()主要用于查询    
  109.  
  110. $user=M();
  111. $list=$user->query('select * from aoli_user order by id desc');
  112. dump($list);          
  113.  
  114. 八、动态查询
  115.  
  116. $user=M('user');
  117. $list=$user->getByusername('pengyanjie');
  118. $list=$user->getByusername('pengyanjie');
  119.  
  120. $user=new AdvModel('user');
  121. $list=$user->top5();//前5条

回复 "查询技巧"

这儿你可以回复上面这条便签

captcha