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');

php mysql 字段不为空_Thinkphp中查询复杂sql查询表达式,如何表达MYSQL中的某字段不为空is not null?...相关推荐

  1. Java 中如何使用 SQL 查询文本

    [摘要]         使用 SQL 查询语言,你只能查询位于数据库里面的数据,但是当你面对的数据是一些 Excel 表格或者 Txt 文本格式时,有什么办法能直接对着文件进行 Select 查询呢 ...

  2. java 查询sql_Java 中如何使用 SQL 查询文本

    [摘要] 使用 SQL 查询语言,你只能查询位于数据库里面的数据,但是当你面对的数据是一些 Excel 表格或者 Txt 文本格式时,有什么办法能直接对着文件进行 Select 查询呢?去乾学院看个究 ...

  3. Hibernate中的命名SQL查询

    2019独角兽企业重金招聘Python工程师标准>>> 1.  命名查询指的是用<sql-query>标签在影射文档中定义的SQL查询,可以通过使用Session.get ...

  4. mysql 索引未命中_联合索引命中率问题导致SQL查询效率慢的问题

    执行 MySQL DumpSlow 结果是:Count: 1358  Time=0.33s (448s)  Lock=0.00s (0s)  Rows=2.5 (3343) Count:出现次数 Ti ...

  5. oracle和mysql文件怎么打开_Oracle vs Mysql--架构、sql查询执行流程及SQL解析顺序区别说明-sql文件怎么打开...

    概述 之前分享的主要是Oracle上的一些内容,那么mysql又有哪些地方不一样呢?下面从MySQL总体架构.sql查询执行流程和语句执行顺序来看一下.. 01 架构总览 下面看一下mysql的架构图 ...

  6. mysql pdo 获取最后一条sql_一条sql语句的执行过程-mysql

    平时我们使用数据库,看到的通常都是一个整体.比如,你有个最简单的表,表里只有一个 ID 字段,在执行下面这个查询语句时: mysql> select * from T where ID=10: ...

  7. php pdo预处理查询,关于php:从PDO预处理语句中获取原始SQL查询字符串

    在对准备好的语句调用pdoStatement::execute()时,是否有方法执行原始SQL字符串?出于调试目的,这将非常有用. 对于php>=5.1,请查看php.net/manual/en ...

  8. python 查询sqlserver 视图_在Python中,将SQL查询的输出显示为表,就像在SQL中一样...

    这似乎是一个基本的函数,但我对Python还不熟悉,所以也许我没有正确地搜索这个函数. 在Microsoft SQL Server中,当SELECT top 100 * FROM dbo.Patien ...

  9. mysql 怎么查询慢sql语句_如何优化MySQL中查询慢的SQL语句啊?

    追问 恩恩我对sql稍微了解点 不知道怎么优化慢sql 可以指导一下嘛 谢谢啦 可以加下我qq吗 1501630150来自:求助得到的回答 mysql数据库有100万+数据,查询起来很慢了,如何优化 ...

最新文章

  1. JavaScript 数组排序及查找数组中最大值最小值方法
  2. Chrome浏览器内部协议Chrome://收集
  3. 图像拼接 Image-based only, no GPS/IMU data
  4. sublime运行python代码python没显示_解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享...
  5. virsh KVM管理工具
  6. android搜索功能xml,Android_Android ActionBar搜索功能用法详解,本文实例讲述了Android ActionBar - phpStudy...
  7. 企业自助分析难以推动?我用这套四步走方案解决了这个难题
  8. exadata磁盘组无法mount恢复---惜分飞 1
  9. 使用 ssmtp 於 shell 透過 Gmail 寄信
  10. Ubuntu,QT5连接MySQL
  11. RTP协议与RTCP协议简介
  12. 【ACL2020】使用问题图生成解决multi-hop复杂KBQA
  13. YouTube和Twitch上的流媒体之间有何区别?
  14. 操作系统-5大功能、5大类型
  15. sublime text 打开txt文档乱码问题
  16. WPS Office 2019 for Linux(WPS 2019 文字操作指引)
  17. 文本选择毒战:我的过度阐释
  18. 软盘是什么_什么是软盘?
  19. 微信公众平台-测试号网页授权-获取openid方法
  20. SpringBoot与拦截器

热门文章

  1. python引用自己的文件的一切问题
  2. [UVa-437] Color Length
  3. 适配器模式(类适配器)
  4. 关系数据库SQL之可编程性触发器
  5. HttpClient Get/Post方式调用Http接口
  6. fast-json.jar的用法
  7. 老赵书托(1):写在前面
  8. C++学习——类的初始化
  9. Hanlp中自定义词典的配置、引用以及问题解决
  10. python作业代码没有缩进严重吗_Python代码需要缩进吗