thinkphp的条件的多种写法

class SelectAction extends Action{

function index(){

//thinkphp 查询语言

//         1.普通查询

//   2.区间查询

//   3.组合查询

//   4.复合查询

//   5.统计查询

//   6.定位查询

//   7.SQL查询

//   8.动态查询

// (一).普通查询

//         1.字符串形式

//           ‘id‘>5 and id<9  在SQL语句当中写的基本形式也是字符串形式

//       2.数组形式

//            $user=M(‘user‘);

//  $date[‘username‘]=‘aaaa‘;  //$date[‘字段名‘]=array(‘表达式‘,‘查询条件‘);

//  $liset=$user->where($date)->select();

//       3.对象形式

//              $user=M(‘user‘);

//              $condition=new stdClass();

//  $codition->username=‘aaaa‘;

//  $list=$user->where($a)->select();

//          查询表达式

//  EQ 等(=)

//  NEQ 不等于(!=)

//  GT 大于(>)

//  EGT 大于等于(>=)

//  LT 小于(<)

//  ELT 小于等于(<=)

//  LIKE 等于SQL like

//  [NOT]ETWEEN 等于SQL的BETWEEN

//  [not] in 查询集合

//  exp 比较特殊 是指使用标准SQL语言 实现更加复杂的情况

//==============================================================================

//普通查询

//$mo=M(‘Mvc‘);

//-------输出ID等于4的所有字段--------

//$list=$mo->where(‘id=4‘)->select();                        1.字符串形式

//$list=$mo->where(array(‘id‘=>array(‘EQ‘,‘4‘)))->select();  2.数组形式

//$conditon=new stdClass();

//$conditon->id=4;                                           3.对象形式

//-------输出ID不等于4的所有字段--------

//$condition="id!=4";                                        1.字符串形式

//$conditon[‘id‘]=array(‘NEQ‘,‘4‘);                          2.数组形式

//-------like的使用  找用户名以h字母开始的---------

//$condition="name like ‘h%‘";                               1.字符串形式

//$condition[‘name‘]=array(‘like‘,‘h%‘);                     2.数组形式

//$condition=array(‘name‘=>array(‘like‘,‘h%‘));              2.数组形式另一种写法

//-------BETWEEN的使用 找到id 4 到id 10的值-------

//$condition="id between ‘4‘ and ‘10‘";                      1.字符串形式

//$condition[‘id‘]=array(‘between‘,‘4,10‘);                  2.数组形式

//$condition=array(‘id‘=>array(‘between‘,‘4,10‘));           2.数组形式另一种写法

//$condition[‘id‘]=array(‘between‘,array(‘4‘,‘10‘));         2.1三维数组的数组形式

//$condition=array(‘id‘=>array(‘between‘,array(‘4‘,‘10‘)));  2.1三维数组的数组形式另一种写法

//$condition[‘id‘]=array(‘not between‘,‘4,10‘);              not between

//-------in的使用 找到name 是 ccc,ggg,nnn的行---------

//$condition="name in (‘ccc‘,‘ggg‘,‘nnn‘)";                  1.字符串形式

//$condition[‘name‘]=array(‘in‘,‘ccc,ggg,nnn‘);              2.数组形式

//$condition[‘name‘]=array(‘in‘,array(‘ccc‘,‘ggg‘,‘nnn‘));   2.1三维数组的数组形式

//-------exp 的使用  找到name 是 ccc,ggg,nnn的行--------

//$condition[‘name‘]=array(‘exp‘,"in(‘ccc‘,‘ggg‘,‘nnn‘)");   2.数组形式

//==========================================================================================================

//区间查询   区间查询就是同一字段间 跨值查询 归根到底 还是数组查询 查询表达式BETWEEN能代替其中一部分 但是区间查询更灵活 范围更广

//$map[‘字段名‘]  = array(第一个条件array(‘like‘,‘%a%‘), 第二个条件array(‘like‘,‘%b%‘), 第三个条件array(‘like‘,‘%c%‘), 第三个条件‘ThinkPHP‘,条件间的关系‘or 或 and‘);

//------查找id大于3 小于10的行------

//$condition="id>=3 and id<=10";                               1.字符串形式

//$condition[‘id‘]=array(‘between‘,‘3,10‘);                 2.between

//$condition[‘id‘]=array(array(‘EGT‘,3),array(‘ELT‘,10));      3.区间查询

//$condition[‘id‘]=array(array(‘GT‘,3),array(‘LT‘,10),‘or‘);

//==========================================================================================================

//组合查询   组合查询 就是跨字段查询

//$condition[‘id‘]=array(‘EQ‘,8);

//$condition[‘name‘]=array(‘EQ‘,‘ccccc‘);

//$condition[‘_string‘]="id=2";  就是在后面加上标准的sql where语句

//$condition[‘_logic‘]=‘or‘;    字段条件之间的关系

//=========================================================================================================

//复合查询  复合查询是包括区间查询  和 组合查询  先写优先级高的模块 然后 __complex压入大模块中

//---------查询表 name为 含有c 2开头 g结尾  其中c结尾的id必须为2-----------

//$condition="(name like ‘%c%‘ and id=2 )or name like ‘2%‘ or name like ‘%g‘";查询字符串

//  $date[‘name‘]=array(‘like‘,‘%c%‘);

//  $date[‘id‘]=2;

//  $date[‘_logic‘]=‘and‘;

//  $condition[‘_complex‘]=$date;

//  $condition[‘name‘]=array(array(‘like‘,‘2%‘),array(‘like‘,‘%g‘),‘or‘);

//  $condition[‘_logic‘]=‘or‘;

//---------查询表 name为 含有c 2开头  其中c结尾的id必须为2 2开头必须ip是127%  他们必须同时time不为空  -------

//  $condition="(name like ‘%c%‘ and id=2 and time!=‘‘) or (name like ‘2%‘ and ip like ‘127%‘ and time!=‘‘)"; 1.字符串形式

//        -------------------

//        $date[‘name‘]=array(‘like‘,‘%c%‘);                                          2.数组加字符串形式

//  $date[‘id‘]=2;                                                              复合查询 是数组查询的一种形式 所有受到数组查询的

//  $date[‘time‘]=array(‘NEQ‘,‘‘);                                              局限性 每个特殊查询 只能使用一次(_string _query

//  $date[‘_logic‘]=‘and‘;                                                      _complex)只能使用一次

//  $twda[‘_complex‘]=$date;

//  $twda[‘_string‘]="name like ‘2%‘ and ip like ‘127%‘ and time!=‘‘";

//  $twda[‘_logic‘]=‘or‘;

//  $condition[‘_complex‘]=$twda;

//         -------------------

//==========================================================================================================

//统计查询

//        $mo->count(‘字段‘); 总数

//  $mo->max(‘字段‘) 最大值

//  $mo->min(‘字段‘) 最小值

//  $mo->avg(‘字段‘) 平均数

//  $mo->sum(字段) 和

$mo=M(‘CommonModel:Mvc‘);

//$list=$mo->count(‘id‘);

//==========================================================================================================

//定位查询 getN是一个很好 很灵活的 获取查询结果中部分值的方法 主要其使是 0  可以和limit 互通

//$list=$mo->getN(-5);

//$list=$mo->where(‘id=11‘)->Last();

//==========================================================================================================

//动态查询  动态查询 简单也更快速

//         一.getBy动态查询 一直快速查询对应字段值 的单条数据的利器

//$list=$mo->getByname(nnn);

//$list=$mo->getByid(‘3‘);

//二. getFieldBy 针对某个字段的值 获取单条数据的单个信息

//$list=$mo->getFieldByid(‘2‘,‘name‘);

//三. top动态查询 top动态查询和limit能互换    !!!!!!!!此处很奇怪 5要加在括号前面!!!!!!!!

//$list=$mo->top5();

//$list=$mo->where($condition)->select();

dump($list);

}

}

时间: 2024-11-13 14:32:46

thinkphp的条件的多种写法的相关文章

Thinkphp 查询条件 and 和 or同时使用即复合查询

        thinkphp 3.2快捷查询OR查询&分割表示AND查询讲解         快捷查询方式是一种多字段查询的简化写法,可以进一步简化查询条件的写法,在多个字段之间用|分割表示OR查询,用&分割表示AND查询,可以实现下面的查询,例如:         一.不同字段相同的查询条件 $User = M("User"); // 实例化User对象             $map['name|title'] = 'thinkphp';           

thinkphp中的配置文件一般写法

thinkphp中的配置文件一般写法 本文摘自:开源it return array( //数据库配置 'DB_TYPE' => 'mysql', 'DB_HOST' => 'localhost', 'DB_NAME' => 'myshopkuaican', 'DB_USER' => 'root', 'DB_PWD' => '', 'DB_PORT' => '3306', 'DB_PREFIX' => 'think_', //默认控制器 //'DEFAULT_MOD

ThinkPHP 连接Oracle的配置写法,(使用Oci扩展而非PDO的写法)

测试了很多遍,TP官网根本就没有给出正确的写法,而且网上搜索到的全都是错误的. 跟踪代码,最终找出了正确的配置写法,备份如下,(by default7#zbphp.com) 'DB_TYPE' => 'oracle', // 数据库类型 'DB_HOST' => 'oracle.zbphp.com', // 服务器地址 'DB_NAME' => '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle.zbphp.com)(PORT=1029))

【重点】Shell入门教程:流程控制(2)条件判断的写法

第三节:条件判断的写法 if条件判断中,if的语法结构中的“条件判断”可以有多种形式.测试结果是真是假,就看其传回的值是否为0. 条件测试的写法,有以下10种: 1.执行某个命令的结果 这里的命令,可包括管道命令,例如:命令1 | 命令2 | 命令3,称为 pipeline,其结束状态为最后一个命令执行的结果. 举例: #!/bin/bash if grep -q "rm" fn.sh; then echo "find in command." else echo

ThinkPHP Where 条件中使用表达式

Where 条件表达式格式为: $map['字段名'] = array('表达式', '操作条件'); 其中 $map 是一个普通的数组变量,可以根据自己需求而命名.上述格式中的表达式实际是运算符的意义: ThinkPHP运算符 与 SQL运算符 对照表 TP运算符 SQL运算符 例子 实际查询条件 eq = $map['id'] = array('eq',100); 等效于:$map['id'] = 100; neq != $map['id'] = array('neq',100); id !

thinkphp where条件语句整理

ThinkPHP运算符 与 SQL运算符 对照表 TP运算符 SQL运算符 例子 实际查询条件 eq = $map['id'] = array('eq',100); 等效于:$map['id'] = 100; neq != $map['id'] = array('neq',100); id != 100 gt > $map['id'] = array('gt',100); id > 100 egt >= $map['id'] = array('egt',100); id >= 10

(转)ThinkPHP Where 条件中使用表达式

转之--http://www.cnblogs.com/martin1009/archive/2012/08/24/2653718.html Where 条件表达式格式为: $map['字段名'] = array('表达式', '操作条件'); 其中 $map 是一个普通的数组变量,可以根据自己需求而命名.上述格式中的表达式实际是运算符的意义: ThinkPHP运算符 与 SQL运算符 对照表 TP运算符 SQL运算符 例子 实际查询条件 eq = $map['id'] = array('eq',

【WebFrontEnd】布局的多种写法

第一次写文章,巧紧张!!! 这是一个很简单的布局,不过是个值得深思的问题.对于这种布局,可以有多种HTML.CSS写法,那么到底可以有多少种写法呢? 我的思路是根据HTML的不同布局,写不同的CSS.这里为了效果,所以都给元素添加了固定的高度. 1.第一种HTML布局 1-1.第一种CSS布局: 这种写法是一个清除了浮动的父元素含有两个向左浮动的子元素,子元素各设置了宽度. 这种写法的缺点是不够灵活,父元素和子元素还有边距都是固定写死的, 如果父元素container宽度改变,aside宽度不变

thinkphp分页+条件查询

最近项目上面有一个带条件查询的分页列表,一开始form用的post,点击第二页就没有跳转成功,原因是分页是get请求,post数据链接到其他页面就会被清除. 解决办法: 1.form表单method=get 2.后台代码用I('get.parameterName')获取URL参数(查询条件) 3.修改thinkphp3.2.3的Page类: 第47行 改为$this->parameter  = empty($parameter) ? array_urlencode($_GET) : $param