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?的更多相关文章

  1. Thinkphp用exp表达式执行mysql语句,查询某字段不为空is not null,自动增值

    Thinkphp用exp表达式执行mysql语句,查询某字段不为空is not null,自动增值 Thinkphp 的文档经常不够完整的表达MYSQL的各种组合,is not null在thinkp ...

  2. Hibernate查询之SQL查询

    转自: Hibernate还支持使用SQL查询,使用SQL查询可以利用某些数据库的特性,或者用于将原有的JDBC应用迁移到Hibernate应用上.使用命名的SQL查询还可以将SQL语句放在配置文件中 ...

  3. Thinkphp查询 1.查询方式 2.表达式查询 3.快捷查询 4.区间查询 5.组合查询 6.统计查询 7.动态查询 8.SQL 查询

    1.使用字符串作为条件查询 $user = M('User'); var_dump($user->where('id=1 AND user="蜡笔小新"')->sele ...

  4. hibernate_05_hibernateHQL查询QBC查询和SQL查询

    1.HQL简介:HQL是Hibernate Query Language(Hibernate 查询语言)的缩写,提供更加丰富灵活.更为强大的查询能力:HQL更接近SQL语句查询语法.Hibernate ...

  5. SpringData_02_JPQL查询、SQL查询和方法命名规则查询

    1.使用JPQL的方式查询 JPQL查询:Hibernate提供的是HQL查询,而JPA提供的是JPQL查询语言 使用Spring Data JPA提供的查询方法已经可以解决大部分的应用场景,但是对于 ...

  6. Sql Server中的nvarchar(n)、varchar(n) 和Mysql中的char(n)、varchar(n)

    刚才有幸看了下 nvarchar(n)和varchar(n),感觉以前的认知有误. nvarchar(n):n指的是字符个数,范围是1-4000,存储的是可变长度的Unicode字符数据. 按字符存储 ...

  7. SQL Server、Oracle和MySQL中查出值为NULL的替换

    参考文献: http://database.51cto.com/art/200803/67397.htm 正文 在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1 ...

  8. Hibernate查询之SQL查询,查询结果用new新对象的方式接受,hql查询,通过SQL查询的结果返回到一个实体中,查询不同表中内容,并将查到的不同表中的内容放到List中

     package com.ucap.netcheck.dao.impl; import java.util.ArrayList;import java.util.List; import org. ...

  9. tp5中使用原生sql查询总结【转】

    注意事项: 1.先在database.php中配置好数据库 2.只要是数据库操作必须引用 use/think/Db;严格区分大小写. 下面是方法: public function hello5() { ...

随机推荐

  1. java 多线程研究:锁的概念

    java多线程:锁 java的多线程中的锁是干嘛的呢?在网上找了很多博客,大都是很专业的语言,让我一时间摸不着头脑.下面分三个部分来总结多线程中的锁的概念. 一,基础概念: 多线程在运行的时候可能会遇 ...

  2. 高盛为什么认为中国AI领域将超越美国?

    不久前,高盛发布的名为<中国在人工智能领域崛起>的研究报告,报告中,高盛认为中国已经成为AI领域的主要竞争者,中国政府建设“智慧型经济”和“智慧社会”的目标将有可能推动中国未来GDP的增长 ...

  3. 如何取消一个目录的git初始化

    一不小心把我的整个home目录都初始化为git仓库了,通过执行删除.git命令,可以恢复 rm -rf .git

  4. 2018java面试知识汇总

    1. 多线程 1.1 多线程7种同步方法? 答:同步方法 同步代码块 使用重入锁实现线程同步(ReentrantLock) 使用特殊域变量(volatile)实现同步(每次重新计算,安全但并非一致) ...

  5. wf-pagination-javascript 分页

    1 <?php isset($_REQUEST['form_single_page_num']) && !empty($_REQUEST['form_single_page_nu ...

  6. 小希的迷宫---hdu1272

    http://acm.hdu.edu.cn/showproblem.php?pid=1272 #include<stdio.h> #include<string.h> #inc ...

  7. js_加入收藏夹功能

    <script type="text/javascript">function addToFavorite(obj) {    var url = "http ...

  8. dedecms手机站图片错误的解决方法

    现在手机站(如m.*.com)是网站建设标配,在用dedecms建站也可以实现(不会的话欢迎来骚扰ytkah),手机站一个比较麻烦的事是图片一直显示不出来,为什么呢?程序一般是调用图片的相对地址,比如 ...

  9. utf8 与 utf-8区别

    在使用中常常遇到 utf-8 和 utf8,现在终于弄明白他们的使用不同之处了,现在来和大家分享一下,下面我们看一下 utf8 和 UTF-8 有什么区别. "UTF-8" 是标准 ...

  10. ubuntu系统下怎么安装gcc编译器

    你安装一个名字叫做build-essential的软件包,就可以一次将编译器.make工具.所有的编程头文件.函数库等东东全部安装上,其中也包括gcc编译器,这是非常稳妥的安装方式,安装命令是用roo ...