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

 

本项目要求开发一个简易的文件管理系统,使用PHP +MySQL+HTML/CSS实现。系统需要具备文章列表 展示、添加文章、编辑文章、删除文章等功能。 1. 数据库连接 (config.php) (1) 功能分析: 负责建立与MySQL数据库的连接 设置字符集为UTF-8以支持中文 提供全局可用的数据库连接对象 $conn 2. 文章列表(index.php) (1) 功能分析 查询所有文章并按更新时间降序排列 以表格形式展示文章基本信息 提供操作按钮(查看、编辑、删除) 3. 文章查看(view.php) (1)功能分析: 根据URL参数 id 获取单篇文章 显示文章的完整内容 提供返回列表的链接 4. 文章编辑/添加 (edit.php) (1) 功能分析 区分编辑模式(?id=xx)和添加模式(?action=add) 编辑模式:查询现有文章并填充表单 添加模式:显示白表单 5. 文章保存(save.php) (1) 功能分析 处理表单提交数据(使用POST方法) 根据操作类型执行INSERT或UPDATE 完成后重定向到文章列表(操作完成后立即进行重定向,避免重复提交) 6. 文章删除(delete.php) (1) 功能分析 根据URL参数 id 删除指定文章 删除前需要用户确认(在index.php中通过onclick完成) 操作完成后重定向到列表 1. 分页功能:在 index.php 实现分页(LIMIT 查询) 2. 搜索功能:增加搜索框,按标题或作者搜索文章 要求:按照上面的要求编写代码。
最新发布
06-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值