zoukankan      html  css  js  c++  java
  • thinkphp 表达式查询

    上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式支持更多的SQL查询语法,也是ThinkPHP查询语言的精髓,查询表达式的使用格式:

    $map['字段名'] = array('表达式','查询条件');

    大理石平台规格

    表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:

    表达式含义协助记忆
    EQ 等于(=) equal
    NEQ 不等于(<>) not equal
    GT 大于(>) greater
    EGT 大于等于(>=) equal or greater
    LT 小于(<) less than
    ELT 小于等于(<=) equal or less than
    LIKE 模糊查询  
    [NOT] BETWEEN (不在)区间查询  
    [NOT] IN (不在)IN 查询  
    EXP 表达式查询,支持SQL语法 expression

    表达式查询的用法示例如下:

    EQ :等于(=)

    例如:

    1. $map['id'] = array('eq',100);

    和下面的查询等效

    1. $map['id'] = 100;

    表示的查询条件就是 id = 100

    NEQ: 不等于(<>)

    例如:

    1. $map['id'] = array('neq',100);

    表示的查询条件就是 id <> 100

    GT:大于(>)

    例如:

    1. $map['id'] = array('gt',100);

    表示的查询条件就是 id > 100

    EGT:大于等于(>=)

    例如:

    1. $map['id'] = array('egt',100);

    表示的查询条件就是 id >= 100

    LT:小于(<)

    例如:

    1. $map['id'] = array('lt',100);

    表示的查询条件就是 id < 100

    ELT: 小于等于(<=)

    例如:

    1. $map['id'] = array('elt',100);

    表示的查询条件就是 id <= 100

    [NOT] LIKE: 同sql的LIKE

    例如:

    1. $map['name'] = array('like','thinkphp%');

    查询条件就变成 name like 'thinkphp%' 如果配置了DB_LIKE_FIELDS参数的话,某些字段也会自动进行模糊查询。例如设置了:

    1. 'DB_LIKE_FIELDS'=>'title|content'

    的话,使用

    1. $map['title'] = 'thinkphp';

    查询条件就会变成 title like '%thinkphp%' 支持数组方式,例如

    1. $map['a'] =array('like',array('%thinkphp%','%tp'),'OR');
    2. $map['b'] =array('notlike',array('%thinkphp%','%tp'),'AND');

    生成的查询条件就是:

    1. (a like '%thinkphp%' OR a like '%tp') AND (b not like '%thinkphp%' AND b not like '%tp')

    [NOT] BETWEEN :同sql的[not] between

    查询条件支持字符串或者数组,例如:

    1. $map['id'] = array('between','1,8');

    和下面的等效:

    1. $map['id'] = array('between',array('1','8'));

    查询条件就变成 id BETWEEN 1 AND 8

    [NOT] IN: 同sql的[not] in

    查询条件支持字符串或者数组,例如:

    1. $map['id'] = array('not in','1,5,8');

    和下面的等效:

    1. $map['id'] = array('not in',array('1','5','8'));

    查询条件就变成 id NOT IN (1,5, 8)

    EXP:表达式

    支持更复杂的查询情况 例如:

    1. $map['id'] = array('in','1,3,8');

    可以改成:

    1. $map['id'] = array('exp',' IN (1,3,8) ');

    exp查询的条件不会被当成字符串,所以后面的查询条件可以使用任何SQL支持的语法,包括使用函数和字段名称。查询表达式不仅可用于查询条件,也可以用于数据更新,例如:

    1. $User = M("User"); // 实例化User对象
    2. // 要修改的数据对象属性赋值
    3. $data['name'] = 'ThinkPHP';
    4. $data['score'] = array('exp','score+1');// 用户的积分加1
    5. $User->where('id=5')->save($data); // 根据条件保存修改的数据
     
  • 相关阅读:
    财务系统重复付款case分析及解决方案
    MySQL体系结构
    安装篇九:安装wordpress(5.4版本)
    安装篇八:配置 Nginx 使其支持 MySQL 应用
    安装篇七:配置 Nginx 使其支持 PHP 应用
    安装篇六:安装PHP(7.2.29版本)
    安装篇五:安装MySQL(5.6.38版本)
    安装篇四:安装NGINX(1.4.0版本)
    安装篇三:系统初始化设置
    安装篇二:CentOS 6.9系统安装
  • 原文地址:https://www.cnblogs.com/furuihua/p/11811115.html
Copyright © 2011-2022 走看看