thinkphp 区间查询 组合查询 复合查询 动态查询 SQL查询

区间查询 默认使用AND 在最后面元素加上OR  SELECT * FROM `weibo_user` WHERE ( `id` > 1 OR `id` < 3 ) $map[‘id‘]=array(   array(‘gt‘,1),   array(‘lt‘,3),     ‘OR‘ ); 组合查询  SELECT * FROM `weibo_user` WHERE `id` = 1 OR ( username = "bnbbs" AND email like "%bnbb%" ) $map[‘id‘]=array(‘eq‘,1); $map[‘_string‘]=‘username = "bnbbs" AND email like "%bnbb%"‘; $map[‘_logic‘]="OR"; 请求字符串查询 $map[‘id‘]=array(‘eq‘,1); $map[‘_query‘]=‘username=bnbbs&_logic=OR‘; $map[‘_logic‘]=‘OR‘; 复合查询  SELECT * FROM `weibo_user` WHERE `id` = 1 OR ( `id` = 2 ) $map[‘id‘]=array(‘eq‘,1); $where[‘id‘]=array(‘eq‘,2); $map[‘_complex‘]=$where; $map[‘_logic‘]=‘OR‘; 统计查询 count() SELECT COUNT(*) AS tp_count FROM `weibo_user` LIMIT 1 最大查询 max(id) SELECT MAX(id) AS tp_max FROM `weibo_user` LIMIT 1 最小查询 min(id) SELECT MIN(id) AS tp_min FROM `weibo_user` LIMIT 1 平均值查询 avg(id)  SELECT AVG(id) AS tp_avg FROM `weibo_user` LIMIT 1 求和查询 sum(id) SELECT SUM(id) AS tp_sum FROM `weibo_user` LIMIT 1 动态查询 getByField(value) SELECT * FROM `weibo_user` WHERE `id` = 1 LIMIT 1getByField(value) SELECT * FROM `weibo_user` WHERE `username` = ‘bnbbs‘ LIMIT 1 getFieldByField(value) SELECT `id` FROM `weibo_user` WHERE `username` = ‘bnbbs‘ LIMIT 1 SQL查询 query($sql)只读 execute($sql)只写

 var_dump($user->query(‘select * from weibo_user‘));
时间: 2024-10-11 07:14:11

thinkphp 区间查询 组合查询 复合查询 动态查询 SQL查询的相关文章

基于Spring Boot,使用JPA动态调用Sql查询数据

在<基于Spring Boot,使用JPA操作Sql Server数据库完成CRUD>,<基于Spring Boot,使用JPA调用Sql Server数据库的存储过程并返回记录集合>完成了CRUD,调用存储过程查询数据. 很多复杂的情况下,会存在要直接执行SQL来获取数据. 通过“EntityManager”创建NativeQuery方法来执行动态SQL. 1.查询结果集映射 在包“com.kxh.example.demo.domain”下的“Contact”实体上编写命名的结果

利用SpEL 表达式实现简单的动态分表查询

这里的动态分表查询并不是动态构造sql语句,而是利用SpEL操作同一结构的不同张表. 也可以参考Spring Data Jpa中的章节http://docs.spring.io/spring-data/jpa/docs/1.11.3.RELEASE/reference/html/#jpa.query.spel-expressions 背景如下: 因为数据量较大,将数据按年份进行了分表,表结构都是一致的.例如现在有两张表分别表示2017/2018年数据 表中只有id和name两个字段 DROP T

SQL查询语句 [2]

一.快捷查询 快捷查询方式是一种多字段查询的简化写法,在多个字段之间用'|'隔开表示OR,用'&'隔开表示 AND. 1.不同字段相同查询条件 在  Home/controller/UserController.class.php   中插入 //使用相同查询条件 $user = M('User'); $map['user|email'] = '蜡笔小新'; //'|'换成'&'变成AND var_dump($user->where($map)->select()); 这时在浏

SQL查询速度慢的原因

1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列 10.查询语句不好,没有优化 ●可以通过如下方法来优化查询 : 1)把数据.日志.索引放到不同的

Hibernate5.2之原生SQL查询

Hibernate5.2之原生SQL查询 一. 介绍  在上一篇博客中笔者通过代码的形式给各位读者介绍了Hibernate中最重要的检索方式--HQL查询.在本博文中笔者将向各位读者介绍Hibernate中的原生SQL查询,虽为原生SQL查询,但是笔者认为Hibernate在针对不同的数据库在分页语句的处理上做的很不错,我们不用去关心使用的是何种的数据库.本博文会沿用<Hibernate5.2之HQL查询>中的POJO类和配置文件,请各位看官在阅读本博文之前请先阅读该文章,本篇文章会将HQL中

sql 查询几个工作日之后的日期

之前在网络查询了一下关于使用sql 查询 "几个工作日之后的日期"的问题,大意就是,假设今天是周三(2014/08/27),三个工作日之后(包含周三)就是周五(20140929),四个工作日之后,就是下周一(20140901),如果遇到法定节假日,则当周末处理(如周一是中秋节,则周一不算是工作日).看了好几个答复,感觉实现起来都挺复杂的,今天学到一种比较简单的处理方法,希望对你有好处. 建立一个时间表 sjb,格式如下: 日期(tjrq) 节假日类型(type) YYYYMMDD 0

sql查询时加上行号

sql查询时加上行号 sql查询的时候有时候要加上行号,这里做个备忘~ 1(建议采用),select row_number() over (order by col1) as no,newid() as id,*from Table1order by col1 2,select no=identity(int,1,1),newid() as id,* into  #temptable From  Table1order by col1Select * From #temptableDrop Ta

Hibernate 的原生 SQL 查询

Hibernate除了支持HQL查询外,还支持原生SQL查询.         对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口.该接口是Query接口的子接口.         执行SQL查询步骤如下:         1.获取Hibernate Session对象         2.编写SQL语句         3.通过Session的createSQLQuery方法创建查询对象         4.调用SQ

Hibernated的sql查询

记录一下学习Hibernate的心得 1.为什么HIbernate会支持原生态的sql查询? HQL查询语句虽然方便我们查询,但是基于HQL的查询会将查询出来的对象保存到hibernate的缓存当中,如果在我们的一个大型项目中(数据量超过了百万级),这个时候如果使用hibernate的HQL查询的话,会一次将我们查询的对象查询出来后放到缓存中,这个时候会影响我们的效率,所以当在大型项目中使用hibernate时我们的最佳实践就是--使用原生的SQL查询语句,因为通过SQL查询的话,是不会经过hi