yii2之原生sql

只是两个使用例子,从别处摘来的,留着后面参考:

方式一:

1 $connection  = Yii::$app->db;
2 $sql     = "select * from hd_article where aid<".$aid." order by aid desc limit 1";
3 $command = $connection->createCommand($sql);
4 $res     = $command->queryAll($sql);

方式二:

1  $query = new \yii\db\Query();
2  $query->select(‘pa_call.id,pa_call.tableid,pa_call.time as msgtime,pa_table_area.id as areaid,pa_table_area.areaname as area,pa_table.tablename,pa_call.message as msg,pa_call.new as needoper,pa_call.status as isdone,pa_employee.username as oper‘)
3             ->from(Call::tableName())
4             ->join(‘LEFT JOIN‘,Table::tableName(),‘pa_call.tableid=pa_table.id‘)
5             ->join(‘LEFT JOIN‘,Area::tableName(),‘pa_table_area.id=pa_table.areaid‘)
6             ->join(‘LEFT JOIN‘,Employee::tableName(),‘pa_call.employeeid=pa_employee.id‘)
7             ->where($where);
8         $command = $query->createCommand();
9         $data = $command->queryAll();
时间: 2024-09-30 20:35:09

yii2之原生sql的相关文章

yii2 oracle 原生sql分页

$sql_list = "SELECT ID, FID, INSID, FLIGHTNO, DEPNAME, ARRNAME, to_char(DEPDATE,'yyyy-MM-dd HH24:mi') as DEPDATE, CHECKID,CERTNAME,CERTTYPE, CERTNO, MOBILE, PRODUCTNAME, PRICE, TOTAL, ETN, DEP,ARR, PAYSTATUS,OSTATUS, to_char(CREATE_TIME,'yyyy-MM-dd H

atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型运行期获得Dialect

#-----原理 Hibernate 运行期获得Dialect 2010-07-28 12:59:58|  分类: 软件开发 |举报 |字号 订阅 String dialect = ((SessionFactoryImpl) session.getSessionFactory()).getDialect() .getClass().getName(); //     //org.hibernate.dialect.MySQLDialect 如果是spring + hibernate则可以: St

Hibernat 原生SQL运行结果集处理方法

hibernate对原生SQL查询执行的控制是通过SQLQuery接口进行的. Session.createSQLQuery(); 使用list()方法可以把Session.createSQLQuery()的结果集处理成List返回,将返回一个Object数组(Object[])组成的List,数组每个元素都是CATS表的一个字段值.Hibernate会使用ResultSetMetadata来判定返回的标量值的实际顺序和类型. 如果要避免过多的使用ResultSetMetadata,或者只是为了

Hibernate原生sql的查询,返回结果设置到DTO

原生sql的查询,返回结果设置到DTO: Query query = sessionFactoryRtData.getCurrentSession().createSQLQuery(hql.toString()).setResultTransformer(Transformers.aliasToBean(RTDataAttrDto.class));

entityframework学习笔记--009-使用原生sql语句操作数据

1 使用原生SQL语句更新--Database.ExecuteSqlCommand 假设你有一张如图9-1所示的Payment数据库表. 图9-1 1.1 实体类型: 1 public class Payment 2 { 3 public int PaymentId { get; set; } 4 public decimal Amount { get; set; } 5 6 public string Vendor { get; set; } 7 } 1.2 数据访问类: 1 public c

Hibernate5.2之原生SQL查询

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

Hibernate的HQL和原生SQL返回简单对象

最近跟了一个技术经理,他有个要求就是所有的查询比结果都必需是对象,不是是map之类的,而且有很多对象的是很多实体相联合组成的对象,所有又专门研究了hibernate返回对象的知识 这次讨论的对象都是组合对象,就是很多实体相关联,取他们一部分字段的组合对象, Hql 首先扩展的对象 package com.hfview.bean; import java.util.ArrayList; import java.util.List; public class PersonEx { private S

在Hibernate中使用原生SQL语句

使用原生SQL查询必须注意:程序必须选出所有的数据列才可被转换成持久化实体.假设实体在映射时有一个<many-to-one../>的关联指向另外一个实体,则SQL查询中必须返回该<many-to-one../>映射的外键列,否则将导致抛出"column not found"异常.最简单的做法是,在SQL字符串中使用星(*)来表示返回所有列.    在原生SQL语句中一样支持使用参数,这些参数即可使用问号参数(?),也可使用名字参数. 示例1:名字参数public

Laravel5.1 数据库--DB运行原生SQL

Laravel操作数据库有三种:DB原生SQL.构建器.Model.这三种依情况而决定使用哪种更合适. 那么今儿咱就从DB原生SQL说起: 1 用DB门面原生SQL语句操作 用DB门面操作的话呢 无非就是:insert.select.update.delete 另外附加一个statement(通用语句 比如drop之类的). 1.1 insert public function getInsert() { DB::insert('INSERT INTO articles (title, body