上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式支持更多的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 :等于(=)

例如:
$map['id'] = array('eq',100);
和下面的查询等效
$map['id'] = 100;
表示的查询条件就是 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 >= 100

LT:小于(<)

例如:
$map['id'] = array('lt',100);
表示的查询条件就是 id < 100

ELT: 小于等于(<=)

例如:
$map['id'] = array('elt',100);
表示的查询条件就是 id <= 100

[NOT] LIKE: 同sql的LIKE

例如:
$map['name'] = array('like','thinkphp%');
查询条件就变成 name like 'thinkphp%' 如果配置了DB_LIKE_FIELDS参数的话,某些字段也会自动进行模糊查询。例如设置了:
'DB_LIKE_FIELDS'=>'title|content'
的话,使用

$map['title'] = 'thinkphp';
查询条件就会变成 title like '%thinkphp%' 支持数组方式,例如

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

生成的查询条件就是:
(a like '%thinkphp%' OR a like '%tp') AND (b not like '%thinkphp%' AND b not like '%tp')

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

查询条件支持字符串或者数组,例如:
$map['id'] = array('between','1,8');
和下面的等效:
$map['id'] = array('between',array('1','8'));
查询条件就变成 id BETWEEN 1 AND 8

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

查询条件支持字符串或者数组,例如:
$map['id'] = array('not in','1,5,8');
和下面的等效:
$map['id'] = array('not in',array('1','5','8'));
查询条件就变成 id NOT IN (1,5, 8)

EXP:表达式

支持更复杂的查询情况 例如:
$map['id'] = array('in','1,3,8');
可以改成:
$map['id'] = array('exp',' IN (1,3,8) ');
exp查询的条件不会被当成字符串,所以后面的查询条件可以使用任何SQL支持的语法,包括使用函数和字段名称。查询表达式不仅可用于查询条件,也可以用于数据更新,例如:

$User = M("User"); // 实例化User对象
// 要修改的数据对象属性赋值
$data['name'] = 'ThinkPHP';
$data['score'] = array('exp','score+1');// 用户的积分加1
$User->where('id=5')->save($data); // 根据条件保存修改的数据

Thinkphp3.2(tp3.2) sql语句表达式查询字符列表【eq,neq,gt,egt,lt,elt,in,between,like,exp】相关推荐

  1. Thinkphp3.2 表达式查询eq,neq,gt,egt,lt,elt,in,between,like,exp

    使用查询表达式支持更多的SQL查询语法,也是ThinkPHP查询语言的精髓,查询表达式的使用格式: $map['字段名'] = array('表达式','查询条件'); 表达式不分大小写,支持的查询表 ...

  2. 如何在 Linux 上用 SQL 语句来查询 Apache 日志

    Linux 有一个显著的特点,在正常情况下,你可以通过日志分析系统日志来了解你的系统中发生了什么,或正在发生什么.的确,系统日志是系统管理员在解决系统和应用问题时最需要的第一手资源.我们将在这篇文章中 ...

  3. PHP获取MySQL执行sql语句的查询时间

    PHP获取MySQL执行sql语句的查询时间 1. $t1=microtime(true); mysql_query($sql); echo microtime(true)-$t1; 2. //计时开 ...

  4. Mybatis映射文件SQL语句模糊查询,#和$的区别和注意事项

    Mybatis映射文件SQL语句模糊查询 1. "%"#{value}"%" 在参数中不需要添加 %_ 推荐使用 2. '%${value}%' 在参数中不需要 ...

  5. java sql范围查询语句,java类中写sql语句,查询条件包含换行

    java类中写sql语句,查询条件包含换行 detachedCriteria.add(Restrictions.or( Restrictions.like("chengBanDanWeiId ...

  6. Python与开源GIS:在OGR中使用SQL语句进行查询

    属性选择与空间选择都可以看作是OGR内置的选择功能,这两种功能可以解决大部分实际中的问题.但是也有这种时候,就是进行查询时的条件比较复杂.针对这种情况,OGR也提供了更加灵活的解决方案:支持使用SQL ...

  7. sql语句连接查询.

    sql语句连接查询. 接触sql语句这么长时间了,牵涉到连接的时候,总是google别人的. 今天好好学学sql 的连接查询 准备工作 : mysql5.6 建表语句 查询语句 select p.id ...

  8. sql 语句 将查询结果中数字等标示转成汉字

    sql 语句  将查询结果中数字等标示转成汉字 --使用case 语句 将state字段进行转换 0 1  2  正常.删除.禁用 SqlServer: select name,age,sex,sta ...

  9. 二见钟情之SQL语句嵌套查询

    这次机房收费系统折腾了七八次,刚开始的时候是因为不会,现在再改是因为自己不够满意,总觉得还能做得更好一点,所以就推倒重来:然后又推倒,又重来,貌似有瘾一样,不过确实该快点了,不然等自己满意了就该过年了 ...

最新文章

  1. 中科大“九章”历史性突破,但实现真正的量子霸权还有多远?
  2. 八张图彻底了解JDK8 GC调优秘籍!
  3. 使用C#中的ref关键字,用2个简单例子来说明
  4. php smtp tls,php – RoundcubePostfix SMTP:SSL例程:SSL3_READ_BYTES:tlsv1 alert unknown ca:s3_pkt.c...
  5. Java导出基础 用POI导出Excel
  6. 程序员面试算法_程序员的前20个搜索和排序算法面试问题
  7. julia在mac环境变量_在Julia中找到值/变量的类型
  8. 从39个kaggle竞赛中总结出来的图像分割的Tips和Tricks
  9. 前端-requests-flask对应关系 HTTPTokenAuth
  10. python中的模块调用_Python中模块互相调用的例子
  11. vue 刷新嵌套路由_vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法...
  12. python实现Dijkstra算法求解图中最短路径距离
  13. H2 database 内存数据库 学习资料
  14. 百度离线地图下载和叠加层瓦片切割(工具下载链接已更新)
  15. python:求100以内素数的和
  16. 微星笔记本安装Ubuntu桌面版
  17. 电脑如何设置日程提醒闹钟
  18. 华为p60pro和mate50pro哪个好 华为p60pro和mate50pro参数对比
  19. linux下做笔记的软件下载,Write一款梦幻般的Linux手机笔记应用程序
  20. Django基础教程

热门文章

  1. 微信小程序导购开发跳转到京东拼多多苏宁唯品会等小程序
  2. Android 判断通知栏是否打开及前往设置页面
  3. 魔百盒M301H_JL代工_ADB可自由开关_强刷固件(可救砖)
  4. JAVA图片裁剪上传实例______软件开发-帮助类
  5. Linux之美—windows server基础(在windows上安装server机)
  6. Python数据可视化(微课版)-简介
  7. Redis(设置失效时间,RedisDesktopManger远程管理工具)
  8. 【程序设计训练】棋盘
  9. java 车牌号归属地_本地化JavaAnpr用于本地的车牌
  10. C51实现时钟12MHz,使用定时器T1的方式1定时20mS ,做一个时分秒的电子钟。