Thinkphp中查询复杂sql查询表达式,如何表达MYSQL中的某字段不为空is not null?
Thinkphp中查询复杂sql查询表达式,如何表达MYSQL中的某字段不为空is not null?
先上两种实现方式的实例:
$querys["house_type_image"] = array('NEQ','NULL'); //判断字段不为空
//$querys["house_type_image"] = array('exp','is not null');//其中的exp表示MYSQL的表达式查询,支持各种MYSQL语句的添加
-------------------------
Thinkphp中查询复杂的情况需要使用查询表达式,使用格式:
$map['字段名'] = array('表达式','查询条件');
表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:
表达式 含义
EQ 等于(=)
NEQ 不等于(<>)
GT 大于(>)
EGT 大于等于(>=)
LT 小于(<)
ELT 小于等于(<=)
LIKE 模糊查询
[NOT] BETWEEN (不在)区间查询
[NOT] IN (不在)IN 查询
EXP 表达式查询,支持SQL语法
示例见Thinkphp的官方文档。官方文档中没有查询某字段为空的例子,试了试,方法如下
判定不为空:
$cond['pic']=array('NEQ','NULL'); //字段pic不为空
$list=$mod->where($cond)->order('id desc')->select();
判定为空:
$cond['pic']=array('EQ','NULL'); //字段pic为空
官方的文档中没有对应例子。
Thinkphp中如何表达MYSQL中的某字段不为空is not null?
Thinkphp 的文档经常不够完整的表达MYSQL的各种组合,很多东西需要被尝试后才能知道,MYSQL查询语句中有个表达式is not null ,在thinkphp中就不能用“=” 或者简单的eq等来表示。
有一种变相的处理方法就是直接把where中的array参数换成string,即比如我要查询某表的pic不为空
$data = D('tablename');
$data->where(“pic is not null”)->select();
而有时候我已经写了一堆的array参数,实在不愿意为了一个字段改变整体格式,
经过多次测试发现了TP还是支持MYSQL不为空的array编写方式的,即:
$map['pic'] = array('exp','is not null');
其中的exp表示MYSQL的表达式查询,支持各种MYSQL语句的添加。
该写法同时支持在update中对字段进行自动增值:
SQL语句 update table set data=data+1;
用THINKPHP可以表达为
$data['data'] = array('exp','data+1');
$table->where(1)->save($data);
//$querys["house_type_image"] = array('exp','is not null');
Thinkphp中查询复杂sql查询表达式,如何表达MYSQL中的某字段不为空is not null?的更多相关文章
- Thinkphp用exp表达式执行mysql语句,查询某字段不为空is not null,自动增值
Thinkphp用exp表达式执行mysql语句,查询某字段不为空is not null,自动增值 Thinkphp 的文档经常不够完整的表达MYSQL的各种组合,is not null在thinkp ...
- Hibernate查询之SQL查询
转自: Hibernate还支持使用SQL查询,使用SQL查询可以利用某些数据库的特性,或者用于将原有的JDBC应用迁移到Hibernate应用上.使用命名的SQL查询还可以将SQL语句放在配置文件中 ...
- Thinkphp查询 1.查询方式 2.表达式查询 3.快捷查询 4.区间查询 5.组合查询 6.统计查询 7.动态查询 8.SQL 查询
1.使用字符串作为条件查询 $user = M('User'); var_dump($user->where('id=1 AND user="蜡笔小新"')->sele ...
- hibernate_05_hibernateHQL查询QBC查询和SQL查询
1.HQL简介:HQL是Hibernate Query Language(Hibernate 查询语言)的缩写,提供更加丰富灵活.更为强大的查询能力:HQL更接近SQL语句查询语法.Hibernate ...
- SpringData_02_JPQL查询、SQL查询和方法命名规则查询
1.使用JPQL的方式查询 JPQL查询:Hibernate提供的是HQL查询,而JPA提供的是JPQL查询语言 使用Spring Data JPA提供的查询方法已经可以解决大部分的应用场景,但是对于 ...
- Sql Server中的nvarchar(n)、varchar(n) 和Mysql中的char(n)、varchar(n)
刚才有幸看了下 nvarchar(n)和varchar(n),感觉以前的认知有误. nvarchar(n):n指的是字符个数,范围是1-4000,存储的是可变长度的Unicode字符数据. 按字符存储 ...
- SQL Server、Oracle和MySQL中查出值为NULL的替换
参考文献: http://database.51cto.com/art/200803/67397.htm 正文 在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1 ...
- Hibernate查询之SQL查询,查询结果用new新对象的方式接受,hql查询,通过SQL查询的结果返回到一个实体中,查询不同表中内容,并将查到的不同表中的内容放到List中
package com.ucap.netcheck.dao.impl; import java.util.ArrayList;import java.util.List; import org. ...
- tp5中使用原生sql查询总结【转】
注意事项: 1.先在database.php中配置好数据库 2.只要是数据库操作必须引用 use/think/Db;严格区分大小写. 下面是方法: public function hello5() { ...
随机推荐
- 9.7 Django
2018-9-7 14:37:35 这次是 图书 出版社 作者 的连表 2018-9-7 16:56:36
- webconfig的配置说明
转自 :http://www.cnblogs.com/kissdodog/archive/2013/04/16/3025315.html <?xml version="1.0" ...
- Android-Broadcast(广播)
1.四大组件之BroadcastReceiver (1)Broadcast(广播)--一种广泛运用在应用程序之间传输信息的机制 (2)BroadcastReceiver(广播接受者)--是对发送过 ...
- 关于keyGenerator,KeyPairGenerator,SecretKeyFactory的解析
Java加密的常用的加密算法类型有三种 1单向加密:也就是不可逆的加密,例如MD5,SHA,HMAC 2对称加密:也就是加密方和解密方利用同一个秘钥对数据进行加密和解密,例如DES,PBE等等 3非对 ...
- UOJ 145 - 神奇的幻方 - [简单数学题]
题目链接:http://uoj.ac/problem/145 题目描述 幻方是一种很神奇的 N∗N 矩阵:它由数字 1,2,3,⋯⋯,N×N 构成,且每行.每列及两条对角线上的数字之和都相同. 当 N ...
- python数据结构之树(二分查找树)
本篇学习笔记记录二叉查找树的定义以及用python实现数据结构增.删.查的操作. 二叉查找树(Binary Search Tree) 简称BST,又叫二叉排序树(Binary Sort Tree),是 ...
- XSS 防范XSS 攻击的措施
XssSniper--0KEE TEAM XssSniper--0KEE TEAM XssSniper 扩展介绍 一直以来,隐式输出的DomXSS漏洞难以被传统的扫描工具发 ...
- PL/SQL常用表达式及举例(二)
使用LOOP循环 declare v_i number:=1; begin loop dbms_output.put_line('v_i='||v_i); exit when v_i>=3; v ...
- 洛谷P1903 数颜色 [国家集训队] 莫队
正解:带修莫队 解题报告: 可以理解为引入时间参数,然后就是有了仨参数,关于这个修改同样的是,如果时间是相同的,不用搞,如果时间不相同做一下时光倒流/时光推移就成嘛 但是肯定既然这样的话,按照原来的s ...
- linux报错 find: missing argument to `-exec'
在linux下使用find命令时,报错:find: missing argument to `-exec' 具体执行命令为: find /u03 -name server.xml -exec grep ...