新闻详情

新闻详情

首页 / 资讯中心 / 详情

mysql 专业笔记 -- 第 8 章:使用变量

发布时间:2026/9/4 7:23:57来源:尧图网络
mysql 专业笔记 -- 第 8 章:使用变量
第 8.1 节设置变量你可以使用SET将变量设置为特定的字符串、数字或日期SETvar_stringmy_var;SETvar_num2;SETvar_date2015-07-20;你可以使用:将变量设置为 SELECT 语句的结果SELECTvar:123;注意当不使用SET语法赋值时你需要使用:因为其他语句如 SELECT、UPDATE中的用于比较所以当你添加冒号后跟等号时表示“这不是比较而是 SET”。你可以使用INTO将变量设置为 SELECT 语句的结果这在需要动态选择要查询的分区时特别有用SETstart_date2015-07-20;SETend_date2016-01-31;-- 获取用作分区名的年月值SETstart_yearmonth(SELECTEXTRACT(YEAR_MONTHFROMstart_date));SETend_yearmonth(SELECTEXTRACT(YEAR_MONTHFROMend_date));-- 将分区放入变量SELECTGROUP_CONCAT(partition_name)FROMinformation_schema.partitionsWHEREtable_namepartitioned_tableANDSUBSTRING_INDEX(partition_name,p,-1)BETWEENstart_yearmonthANDend_yearmonthINTOpartitions;-- 将查询放入变量。你需要这样做因为 MySQL 在那个位置不能识别变量。你需要将变量的值与查询的其余部分拼接然后作为预处理语句执行。SETqueryCONCAT(CREATE TABLE part_of_partitioned_table (PRIMARY KEY(id)) ,SELECT partitioned_table.* ,FROM partitioned_table PARTITION(,partitions,) ,JOIN users u USING(user_id) ,WHERE DATE(partitioned_table.date) BETWEEN ,start_date, AND ,end_date);-- 从 query 准备语句PREPAREstmtFROMquery;-- 删除表如果存在DROPTABLEIFEXISTStech.part_of_partitioned_table;-- 使用语句执行创建表EXECUTEstmt;第 8.2 节在 SELECT 语句中使用变量实现行号和分组假设我们有一个team_person表如下所示[图片占位符]CREATETABLEteam_personASSELECTAteam,JohnpersonUNIONALLSELECTBteam,SmithpersonUNIONALLSELECTAteam,WalterpersonUNIONALLSELECTAteam,LouispersonUNIONALLSELECTCteam,ElizabethpersonUNIONALLSELECTBteam,Wayneperson;要为team_person表添加行号列可以使用以下任一方法SELECTrow_no:row_no1ASrow_number,team,personFROMteam_person,(SELECTrow_no:0)t;或者SETrow_no:0;SELECTrow_no:row_no1ASrow_number,team,personFROMteam_person;以上都会输出以下结果示例----------------------------- | row_number | team | person | ----------------------------- | 1 | A | John | | 2 | A | Walter | | 3 | A | Louis | | 4 | B | Smith | | 5 | B | Wayne | | 6 | C | Elizabeth | -----------------------------最后如果我们想要按team列分组生成行号SELECTrow_no:IF(prev_valt.team,row_no1,1)ASrow_number,prev_val:t.teamASteam,t.personFROMteam_person t,(SELECTrow_no:0)x,(SELECTprev_val:)yORDERBYt.teamASC,t.personDESC;输出结果示例----------------------------- | row_number | team | person | ----------------------------- | 1 | A | Walter | | 2 | A | Louis | | 3 | A | John | | 1 | B | Wayne | | 2 | B | Smith | | 1 | C | Elizabeth | -----------------------------
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

AT91M40800 EBI接口配置与调试实战:从原理到排错 2026/9/4 7:57:03

AT91M40800 EBI接口配置与调试实战:从原理到排错

简介:本资源是面向嵌入式系统开发者与ARM初学者的AT91M40800微控制器外部总线接口(EBI)核心驱动支持包,聚焦于解决外部存储器(如SRAM、Flash、DRAM)扩展中的时序配置、寄存器初始化与数据读写控制等关键问题…

阅读更多 →
单因素方差分析结果解读:F统计量与事后比较 2026/9/4 7:57:03

单因素方差分析结果解读:F统计量与事后比较

单因素方差分析结果解读一、方法概述单因素方差分析(One-way Analysis of Variance, One-way ANOVA)是检验三个及以上独立组别均值是否存在显著差异的经典参数检验方法。其基本思想是将总变异分解为组间变异(Between-group Variation&#xf…

阅读更多 →
从噪声到结构:MATLAB被动源面波频散反演全流程拆解 2026/9/4 7:57:03

从噪声到结构:MATLAB被动源面波频散反演全流程拆解

简介:本资源是一套面向地球物理专业研究生、科研人员及工程技术人员的MATLAB实战工具包,聚焦被动源面波频散曲线反演这一核心地球物理反演任务,解决野外无主动震源条件下地壳浅层剪切波速度结构精细建模难题。压缩包共18个文件,以…

阅读更多 →
毕业设计实战:基于Spring Boot与Vue的仓库管理系统全流程开发指南 2026/9/4 7:57:03

毕业设计实战:基于Spring Boot与Vue的仓库管理系统全流程开发指南

简介:本资源是一套完整的毕业设计项目交付包,面向计算机专业本科生及初学者,聚焦企业级仓库管理信息系统的设计与实现,解决传统库存管理效率低、数据分散、流程不透明等实际问题。压缩包共165个文件,含53个C#核心业务逻…

阅读更多 →
从零构建多智能体系统:基于AgentScope 2.0的智能体对话项目实战 2026/9/4 7:57:03

从零构建多智能体系统:基于AgentScope 2.0的智能体对话项目实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
百元价位静音办公鼠标选购指南:拇指滚轮与静音微动解析 2026/9/4 7:54:02

百元价位静音办公鼠标选购指南:拇指滚轮与静音微动解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞