mysql从入门到精通
解决MySQL Got a packet bigger than 'max_allowed_packet' bytes
问题在一次性向mysql插入的数据过大,可在my.ini中修改max_allowed_packet的配置项
修改my.ini如下:
max_allowed_packet=16M
重启mysql:
电脑->右键管理->服务->mysql重启
mysql排序按照中文文字的首字母进行排序
例如:下面使用字段common_producer_herb_info_name按照首字母a-z进行排序
SELECT * FROM e_common_producer_product_grade_info ORDER BY CONVERT(common_producer_herb_info_name USING gbk ) COLLATE gbk_chinese_ci ASC

mysql索引
/**
* 根据基地和时间段获取原料出库列表
* @param $common_producer_info_id
* @param int $wms_check_begin_at
* @param int $wms_check_end_at
* @return array
*/
public static function getWmsMaterialOutSumList($common_producer_info_id, $wms_check_begin_at=0, $wms_check_end_at=0){
$wms_check_end_at = !empty($wms_check_end_at) ? $wms_check_end_at : time();
//注意,一个出库单可以出库多个入库单的部分药材,即出库单不记录入库单号,只有出库详情才记录入库单号
//分组时不应该使用入库单号,而应该使用出库单号,因为一个入库单可以分多次出库
$sql = "SELECT
modet.wms_stock_detail_info_relation_good_in_sheet_number in_sheet_number,
mo.common_producer_info_id producer_id,
mo.common_producer_info_name producer_name,
mo.common_producer_herb_info_id info_id,
mo.common_producer_herb_info_name info_name,
mo.common_producer_herb_grade_info_id grade_id,
mo.common_producer_herb_grade_name grade_name,
SUM(
IFNULL(
modet.wms_material_out_sheet_detail_out_number,
0
)
) AS sum_out_package_number,
SUM(
IFNULL(
modet.wms_material_out_sheet_detail_out_weight,
0
)
) AS sum_out_weight,
SUM(
IFNULL(
modet.wms_material_out_sheet_detail_storage_loss_weight,
0
)
) AS sum_out_loss_weight
from {{%wms_material_out_sheet_detail}} modet
LEFT JOIN {{%wms_material_out_sheet}} mo ON mo.id = modet.wms_material_out_sheet_id
WHERE
modet.is_del = 0
AND mo.is_del = 0
AND mo.wms_material_out_sheet_status = 1
AND mo.common_producer_info_id = :common_producer_info_id
AND mo.wms_material_out_sheet_outgoing_date >= :wms_check_begin_at
AND mo.wms_material_out_sheet_outgoing_date <= :wms_check_end_at
GROUP BY
mo.common_producer_herb_info_id,
mo.common_producer_herb_grade_info_id,
modet.wms_material_out_sheet_number,
modet.wms_stock_detail_info_relation_good_in_sheet_number";
$list = Yii::$app->db->createCommand($sql)
->bindValue(':common_producer_info_id', $common_producer_info_id)
->bindValue(':wms_check_begin_at', $wms_check_begin_at)
->bindValue(':wms_check_end_at', $wms_check_end_at)->queryAll();
return $list;
}
/**
* 获取成品出库相关信息
* @param $common_producer_info_id
* @param int $wms_check_begin_at
* @param int $wms_check_end_at
* @return array
*/
public static function getWmsProductOutSumList($common_producer_info_id, $wms_check_begin_at=0, $wms_check_end_at=0){
$wms_check_end_at = !empty($wms_check_end_at) ? $wms_check_end_at : time();
//注意:成品出库详情没有成品出库ID的关联字段,只能使用成品出库单号关联
//分组时不应该使用入库单号,而应该使用出库单号,因为一个入库单可以分多次出库
$sql = "SELECT
po.wms_product_in_sheet_number in_sheet_number,
po.common_producer_info_id producer_id,
po.common_producer_info_name producer_name,
po.common_producer_herb_info_id_product info_id,
po.common_producer_herb_info_name_product info_name,
po.common_producer_herb_grade_info_id_product grade_id,
po.common_producer_herb_grade_name_product grade_name,
SUM(
IFNULL(
podet.wms_product_out_detail_info_out_number,
0
)
) AS sum_out_package_number,
SUM(
IFNULL(
podet.wms_product_out_detail_info_out_weight,
0
)
) AS sum_out_weight,
SUM(
IFNULL(
podet.wms_product_out_detail_info_storage_loss_weight,
0
)
) AS sum_out_loss_weight
FROM {{%wms_product_out_detail_info}} podet
LEFT JOIN {{%wms_product_out_sheet}} po ON po.wms_product_out_sheet_number = podet.wms_product_out_sheet_number
WHERE
podet.is_del = 0
AND po.is_del = 0
AND po.wms_product_out_sheet_status = 1
AND po.common_producer_info_id = :common_producer_info_id
AND po.wms_product_out_sheet_product_out_date >= :wms_check_begin_at
AND po.wms_product_out_sheet_product_out_date <= :wms_check_end_at
GROUP BY
po.common_producer_herb_info_id_product,
po.common_producer_herb_grade_info_id_product,
po.wms_product_out_sheet_number,
podet.wms_product_in_sheet_number";
$list = Yii::$app->db->createCommand($sql)
->bindValue(':common_producer_info_id', $common_producer_info_id)
->bindValue(':wms_check_begin_at', $wms_check_begin_at)
->bindValue(':wms_check_end_at', $wms_check_end_at)->queryAll();
return $list;
}
SELECT vms.info_name AS info_name, vms.grade_name AS grade_name, ( vms.sum_in_weight - vms.sum_out_weight ) AS weight, ( vms.sum_in_price - vms.sum_out_price ) AS price FROM ( SELECT pi.common_producer_herb_info_name_product info_name, pi.common_producer_herb_grade_name_product grade_name, SUM( IFNULL( pi.wms_product_in_sheet_in_weight, 0 ) ) AS sum_in_weight, SUM( IFNULL( pi.wms_product_in_sheet_unit_price, 0 ) ) AS sum_in_price, SUM( IFNULL( po.wms_product_out_sheet_out_weight, 0 ) ) AS sum_out_weight, SUM( IFNULL( po.wms_product_out_sheet_total_price, 0 ) ) AS sum_out_price FROM e_wms_product_in_sheet AS pi LEFT JOIN e_wms_product_out_sheet AS po ON pi.common_producer_herb_info_id_product = po.common_producer_herb_info_id_product AND pi.common_producer_herb_grade_info_id_product = po.common_producer_herb_grade_info_id_product AND po.is_del = 0 WHERE pi.is_del = 0 GROUP BY pi.common_producer_herb_info_id_product, pi.common_producer_herb_grade_info_id_product ) vms
mysql 常用函数
, wms_product_in_sheet_in_weight, ORDER BY id ASC;
第十 mysql导出数据库
在d:/mysql/bin中运行上述脚本,即可导出mysql形成sql文件,sql文件需要删除一行DTID。则能使用navicate导入sql文件到数据库
mysql从入门到精通的更多相关文章
- Mysql从入门到精通整理
目录 mysql基础 mysql进阶 mysql高级 mysql优化 正文 数据库是信息化产业的最基础的软件之一,各种管理系统,网站,在线游戏,背后基本都会有数据库的支持. 回到顶部 mysql基础 ...
- 《mysql从入门到精通》提高
第一 游标的使用 delimiter $$ DROP PROCEDURE IF EXISTS product_in_sheet_handler; CREATE PROCEDURE product_in ...
- MySQL数据库应用 从入门到精通 学习笔记
以下内容是学习<MySQL数据库应用 从入门到精通>过程中总结的一些内容提要,供以后自己复现使用. 一:数据库查看所有数据库: SHOW DATABASES创建数据库: CREATE DA ...
- 《MySQL数据库从入门到精通》 高级运维人才的必备书籍
众所周知,每年就业市场都会迎来千万量级的高校毕业生,然而企业招工难和毕业生就业难的矛盾却一直没有得到很好地解决.究其原因,主要矛盾还是在于传统的学历教育与企业实际需求相脱节.为了杜绝高校毕业生求职时常 ...
- 【MySQL】从入门到精通8-SQL数据库编程
上期:[MySQL]从入门到精通7-设计多对多数据库 第零章:Mac用户看这里: mac终端写MySQL和windows基本相同,除了配置环境变量和启动有些许不同以外. 先配置环境变量,在终端输入vi ...
- 【MySQL】从入门到精通9-数据库的备份(完结)
上期:[MySQL]从入门到精通8-SQL数据库编程 第一章:数据的导出 回到我们的Workbench. 选择Data Export. 选择需要导出的数据库. 注意,如果选择"Export ...
- 【MySQL】从入门到精通7-设计多对多数据库
上期:[MySQL]从入门到精通6-MySQL数据类型与官方文档 第一章:理解 和一对多不一样,多对多意思是,一个数据可以被不同的数据关联. 如果是一对多,我们还可以用外键来达成. 但是现在我们是多对 ...
- 【MySQL】从入门到精通6-MySQL数据类型与官方文档
上期:[MySQL]从入门到精通5-一对多-外键 这个是官方文档链接,是世界上最全面的MySQL教学了,所有问题都可以在这里找到解决方法. https://dev.mysql.com/doc/ htt ...
- Hibernate从入门到精通(三)Hibernate配置文件
在上次的博文Hibernate从入门到精通(二)Hibernate实例演示我们已经通过一个实例的演示对Hibernate的基本使用有了一个简单的认识,这里我们在此简单回顾一下Hibernate框架的使 ...
随机推荐
- Nginx缓存服务
Nginx缓存服务 1.缓存常见类型 2.缓存配置语法 3.缓存配置实践 4.缓存清理实践 5.部分页面不缓存 6.缓存日志记录统计 通常情况下缓存是用来减少后端压力, 将压力尽可能的往前推, 减少后 ...
- Raid卡介绍
raid0条带卷 最少需要一块硬盘 可以把所有硬盘的容量都叠加在一起,可以拥有很高的读写速度,硬盘空间也能得到很好的利用 但是只要其中一块硬盘换了,数据就全丢失了 raid1镜像卷 最少需要两块硬盘, ...
- ssh 免密码登录配置,及其原理
1.废话不多说,先上图 2. 典型的RSA非对称加密 RSA加密算法是一种典型的非对称加密算法,它基于大数的因式分解数学难题,它也是应用最广泛的非对称加密算法,于1978年由美国麻省理工学院(MI ...
- Java的错误类型
程序的错误分为:编译期语法错误.运行期异常错误和运行期逻辑错误 (1)编译期语法错误可以借助Eclipse的帮助方便地定位错误,并进行修改 如: (2)运行期异常,即 没有语法错误,编译可以通过,但运 ...
- spring-boot项目的新建(出生)
了解了SSM之后,发现是真的强大,但是配置有点多,是不是啊,老铁,所以Spring-boot被我给抓住,了解了一波.[/斜眼笑] 一.Spring-boot是啥呢? 以我现在的水平,无法用花里胡哨的语 ...
- [MicroPython]TPYBoard智能小车“飞奔的TPYBoard装甲一号”
智能小车作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途.智能小车能够实时显示时间.速度.里程,具有自动寻迹.寻光.避障 ...
- .NET(C#)主流ORM总揽
前言 在以前的一篇文章中,为大家分享了<什么是ORM?为什么用ORM?浅析ORM的使用及利弊>.那么,在目前的.NET(C#)的世界里,有哪些主流的ORM,SqlSugar,Dapper, ...
- Python爬取豆瓣指定书籍的短评
Python爬取豆瓣指定书籍的短评 #!/usr/bin/python # coding=utf-8 import re import sys import time import random im ...
- Git简易的命令入门
Git 全局设置: git config --global user.name "kszsa" git config --global user.email "duyon ...
- [Loadrunner参数化]一个文件输两列参数的取值
关于LoadRunner参数化的内容,在脚本开发中属于非常重要的一个知识点.关于这部分知识,在书上和网上到处都能找到,本篇只讲一种特殊情况:一个参数化文件为File类型,有多列值,如何进行参数化取值. ...