yii2 Query Builder 查询打印sql语句

$query = new Query();
$query->select(‘gs.*, g.goods_images, sa.attr_name, sa.is_default, sa.alias_sort‘)->from(GoodsSpec::tableName() . ‘ gs‘);
$query->leftJoin(SpecAlias::tableName() . ‘ sa‘, ‘gs.attr_id = sa.attr_id and gs.goods_id = sa.goods_id‘);
// $query->leftJoin(CatSpec::tableName() . ‘ c‘, ‘gs.attr_id = c.attr_id and gs.cat_id = c.cat_id‘);
$query->leftJoin(AttrValue::tableName() . ‘ av‘, ‘gs.attr_vid = av.attr_vid‘);
$query->leftJoin(Goods::tableName() . ‘ g‘, ‘g.goods_id = gs.goods_id‘);
$query->andWhere(‘gs.goods_id in (‘.$goods_ids.‘)‘);
// $query->groupBy([‘gs.goods_id‘]);

$query->orderBy([
‘sa.is_default‘ => SORT_DESC,
‘gs.spec_sort‘ => SORT_ASC,
‘av.attr_vsort‘ => SORT_ASC
]);
$sql = clone $query;
var_dump($sql->createCommand()->getRawSql());

原文地址:https://www.cnblogs.com/indifferent/p/12076428.html

时间: 2024-10-31 05:30:02

yii2 Query Builder 查询打印sql语句的相关文章

MySQL5.6 如何优化慢查询的SQL语句 -- 慢日志介绍

最近有个开发团队抱怨我们平台包含的mysql cluster不行,总是报mysql的"heartbeat Error",分析了他们收集的日志,没有发现mysql cluster节点之间的网络有问题,倒是发现了一个很有意思的现象,在mysql的slow log里面发现了大量的慢查询,基本上都是要1秒钟以上,很明显这种耗时高的慢查询会影响系统行为,指出这点让开发团队去优化他们的应用,很好奇他们竟然不知道有这些东西可以分析...... 数据库响应慢问题最多的就是查询了.现在大部分数据库都提供

MySQL5.6 怎样优化慢查询的SQL语句 -- 慢日志介绍

近期有个开发团队抱怨我们平台包括的mysql cluster不行,总是报mysql的"heartbeat Error".分析了他们收集的日志.没有发现mysql cluster节点之间的网络有问题,倒是发现了一个非常有意思的现象,在mysql的slow log里面发现了大量的慢查询.基本上都是要1秒钟以上,非常明显这样的耗时高的慢查询会影响系统行为.指出这点让开发团队去优化他们的应用,非常好奇他们居然不知道有这些东西能够分析. ... .. 数据库响应慢问题最多的就是查询了.如今大部分

MySQL5.6 如何优化慢查询的SQL语句 -- SQL优化

上篇:MySQL5.6 如何优化慢查询的SQL语句 -- 慢日志介绍 在实际的日志分析中,通常慢日志的log数量不少,同时相同的查询被记录的条数也会很多,这里就需要如何从慢日志查询中找到最有问题,最需要优化的日志.在这方面,有很多分析工具,最基本的分析工具就是MySQL自带的mysqldumpslow,mysqldumpslow(Perl脚本)的输出示例: [[email protected] bin]# ./mysqldumpslow -s t -t 1 /usr/local/mysql/da

mysql按年度、季度、月度、周、日统计查询的sql语句

本文介绍一些mysql中用于查询的sql语句,包括按年度.季度.月度.周.日统计查询等,有需要的朋友,可以参考下. 一.年度查询 查询 本年度的数据 SELECT * FROM blog_article WHERE year( FROM_UNIXTIME( BlogCreateTime ) ) = year( curdate( )) 二.查询季度数据 查询数据附带季度数 SELECT ArticleId, quarter( FROM_UNIXTIME( `BlogCreateTime` ) )

MySql实现分页查询的SQL,mysql实现分页查询的sql语句 (转)

http://blog.csdn.net/sxdtzhaoxinguo/article/details/51481430 摘要:MySQL数据库实现分页查询的SQL语句写法! 一:分页需求: 客户端通过传递start(页码),limit(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql数据库提供了分页的函数limit m,n,但是该函数的用法和我们的需求不一样,所以就需要我们根据实际情况去改写适合我们自己的分页语句,具体的分析如下: 比如: 查询第1条到第10条的数据的s

Django终端打印SQL语句和调用test脚本

Django终端打印SQL语句 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.StreamHandler', }, }, 'loggers': { 'django.db.backends': { 'handlers': ['console'], 'propagate': True, 'level':'D

9、springcloud整合logback打印sql语句

Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core.logback- classic和logback-access.logback-core是其它两个模块的基础模块.logback-classic是log4j的一个 改良版本.此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging.logback-access访问模块与Servlet容器集成提供通过Ht

maven项目整合SSM配置log4j, 实现控制台打印SQL语句

在原有项目正常启动的情况下, 实现在控制台打印mapper包下SQL语句. 1.在pom.xml配置文件中添加两个依赖(缺一不可) 1 <!--日志包--> 2 <dependency> 3 <groupId>log4j</groupId> 4 <artifactId>log4j</artifactId> 5 <version>${log4j-version}</version> 6 </dependen

Java实战之路(1):SpringBoot项目中使用Mybatis打印Sql语句

SpringBoot项目中使用Mybatis打印Sql语句 如题,实际项目中使用很多都会用到SpringBoot+Mybatis的经典搭配进行开发,数据库里明明有数据,可是程序运行就是查不到,此时我们在本地Debug时,需要将Mybatis的实际Sql打印出来,看看Sql与我们期望的是否一致,或者将Sql拿到数据库中直接执行,看看结果.这里简单介绍几种实战中的用法. 方法一 properties:在application.properties配置文件中增加如下配置 logging.level.c