Where 条件表达式格式为:
$map['字段名'] = array('表达式', '操作条件');
其中 $map 是一个普通的数组变量,可以根据自己需求而命名。上述格式中的表达式实际是运算符的意义:
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 >= 100 |
| lt | < | $map['id'] = array('lt',100); | id < 100 |
| elt | <= | $map['id'] = array('elt',100); | id <= 100 |
| like | like | $map = array('like','Admin%'); | username like 'Admin%' |
| between | between and | $map['id'] = array('between','1,8'); | id BETWEEN 1 AND 8 |
| not between | not between and | $map['id'] = array('not between','1,8'); | id NOT BETWEEN 1 AND 8 |
| in | in | $map['id'] = array('in','1,5,8'); | id in(1,5,8) |
| not in | not in | $map['id'] = array('not in','1,5,8'); | id not in(1,5,8) |
| and(默认) | and | $map['id'] = array(array('gt',1),array('lt',10)); | (id > 1) AND (id < 10) |
| or | or | $map['id'] = array(array('gt',3),array('lt',10), 'or'); | (id > 3) OR (id < 10) |
| xor(异或) | xor | 两个输入中只有一个是true时,结果为true,否则为false,例子略。 | 1 xor 1 = 0 |
| exp | 综合表达式 | $map['id'] = array('exp','in(1,3,8)'); | $map['id'] = array('in','1,3,8'); |
补充说明
同 SQL 一样,ThinkPHP运算符不区分大小写,eq 与 EQ 一样。
between、 in 条件支持字符串或者数组,即下面两种写法是等效的:
$map['id'] = array('not in','1,5,8');
$map['id'] = array('not in',array('1','5','8'));
exp 表达式
上表中的 exp 不是一个运算符,而是一个综合表达式以支持更复杂的条件设置。exp 的操作条件不会被当成字符串,可以使用任何 SQL 支持的语法,包括使用函数和字段名称。
exp 不仅用于 where 条件,也可以用于数据更新,如:
$Dao = M("Article");
// 构建 save 的数据数组,文章点击数+1
$data['id'] = 10;
$data['counter'] = array('exp','counter+1');
// 根据条件保存修改的数据
$User->save($data);
- 前端工程师
- HTML
- 使用meta实现页面的定时刷新或跳转
- 表单相关
- 表单元素input、按钮、文字完美垂直居中对齐方法
- CSS
- 相关工具网站
- JS
- jQuery
- 第1章 初始jQuery
- 环境搭建
- jQuery对象与DOM对象
- jQuery对象转化成DOM对象
- DOM对象转化成jQuery对象
- 第2章 jQuery选择器
- id选择器
- 类选择器
- 元素选择器
- 全选择器(*选择器)
- 层级选择器
- 基本筛选选择器
- 内容筛选选择器
- 可见性筛选选择器
- 属性筛选选择器
- 子元素筛选选择器
- 表单元素选择器
- 表单对象属性筛选选择器
- 特殊选择器this
- 第3章 jQuery的属性与样式
- 元素的数据存储
- 问题解决方案
- 解决innerHTML包含的js代码不能被执行的问题
- webpackdoc
- 前端开发框架
- Bootstrap 3.3.6
- 起步
- 全局 CSS 样式
- 概览
- 栅格系统
- PHP
- PHP入门篇
- 基础总结
- PHP环境变量$_SERVER和系统常量详细说明
- PHP进阶篇
- 数组
- 函数
- 类
- 字符串操作
- 正则表达式
- 会话控制
- 文件系统
- 日期和时间
- 图形图像操作
- PHP异常处理
- 数据库操作
- WEB在线文件管理器
- PHP文件操作
- 获取首层目录信息
- 获取文件信息
- 列表显示文件及大小
- PHP与MySQL关系大揭秘
- PHP支持哪些数据库
- 数据库扩展
- 连接MySQL数据库
- 执行MySQL查询
- 插入新数据到MySQL中
- MVC架构模式分析与设计
- Smarty模版语法
- Smarty的基本语法
- Smarty的条件判断语句
- Smarty的循环语句
- Smarty的文件引用
- Smarty类和对象赋值与使用
- Smarty函数的使用
- functions函数插件的定义和使用
- modifiers变量调节器插件的定义和使用
- block functions区块函数插件的定义和使用
- Smarty实例
- MVC微型框架的建立
- 网络摘抄
- PHPExcel如何读取超大excel文件
- Composer
- Composer技巧
- PHP 开发者该知道的 5 个 Composer 小技巧
- composer常用命令
- Composer使用方法整理(Cy23)
- 利用Composer一步一步搭建自己的PHP框架
- ThinkPHP
- ThinkPHP中RBAC类详解(一)
- 附:添加注释版RBAC类源码
- 常见问题
- 常见方法
- thinkphp 合并两个字段组合成一个临时字段concat函数
- ThinkPHP Where 条件中使用表达式
- 编程相关工具
- Eclipse
- Eclipse或Zendstudio汉化
- Zend studio
- Zendstudio快捷键
- Zend Studio实用快捷键一览表
- Sublime text
- Sublime text快捷键
- 16 个 Sublime Text 快捷键
- Emmet的用法及相关语法
- VS Code
- 数据库
- MySql
- 问题汇总
- mysql创建存储过程失败1307错误解决
- Mysql出现Field * doesn't have a default value解决办法
- mysql:ADO连接mysql数据库,驱动程序和ODBC数据源问题
- 自己如何正确获取MYSQL的ADO连接字符串
- 网上摘抄
- mysql 存在更新 不存在插入
- Mysql字符串字段中是否包含某个字符串,用 find_in_set
- mysql字段类型对应的数字编号
- 5.7mysql group分组查询错误问题
- mysql常用操作语句
- SQL2005
- SQL常见错误
- 使用 sp_change_users_login 修复产生的孤 立账户 & 还原中的孤立用户
- ASP
- Url编码解码函数合集 含utf-8和gb2312
- 其他前端相关技巧
- 联机查看 Office 文档
- 服务器配置
- windows
- 服务器安装
- XAMPP自带TOMCAT插件可以支持php+java
- IIS
- iis7服务器,客户端无法下载exe文件的解决之道
- Linux
- ubuntu
- Linux安装JDK
- 辅助开发工具
- Git