小工具      在线工具  汉语词典  css  js  c++  java

mysql自定义变量,自定义变量显示行号、简化查询、赋值

免费专栏,mysql,数据库 额外说明

收录于:112天前

前言

  • 有时我们需要导出成绩单,并按分数由高到底进行排序,并展示排名,这里就需要自定义变量,如图所示:
    分数排名
  • 有时我们在数据库中通过好几张表查找数据时,每张表的信息都要展示出来,这样就需要一个共有变量

这里就需要自定义变量。

mysql自定义变量

语法:SET @var_name = expr [, @var_name = expr] ...

对于SET,可以使用=:=作为分配符。分配给每个变量的expr可以为整数、实数、字符串或者NULL值。

也可以用select语句代替SET来为用户变量分配一个值。在这种情况下,分配符必须为:=而不能用=,因为在非SET语句中=被视为一个比较 操作符:

set @i1=1,@i2=2,@i3=3;
SELECT @i1,@i2,@i3,@i4:=@i1+@i3;

自定义变量显示行号

SELECT
  (@i:=@i+1) AS 排名,
	tst. NAME AS 姓名,
	tst. NO AS 学号,
	tco. NAME AS 课程,
	tsc.score AS 分数
FROM
	(SELECT @i := 0) as tmp,tb_score tsc
LEFT JOIN tb_student tst ON tst.id = tsc.student_id
LEFT JOIN tb_course tco ON tco.id = tsc.course_id
WHERE tco.id = 2
ORDER BY tco.id ASC,tsc.score DESC 

在这里插入图片描述

自定义变量简化查询

SELECT *,@memberId :=id from core_member WHERE mobile= '12121212';

SELECT * from ccs_open_account WHERE member_id = @memberId AND is_deleted = 0;

SELECT * FROM ccs_account WHERE member_id = @memberId AND is_deleted = 0;

自定义变量赋值

set @i1=1,@i2=2,@i3=3;
SELECT @i1,@i2,@i3,@i4:=@i1+@i3;
. . .

相关推荐

额外说明

SpringBoot热部署以及与Mybatis的集成

目录 一、SpringBoot热部署 1.1 添加DevTools依赖 1.2 在idea中设置自动编译 1.3 在Idea设置自动运行 二、SpringBoot整合Mybatis 2.1 准备数据 2.2 添加相关依赖 2.3 在配置文件进行数据源配置

额外说明

SpringBoot中定时任务的实现有两种方式。第二种方法可以动态管理计划任务。有例子。

方式一: 1.启动类加上注解 @EnableScheduling @EnableCaching // 启用缓存功能 @EnableScheduling // 开启定时任务功能 @ComponentScan(basePackage

额外说明

【Java】快速入门JVM

文章目录 1. JVM简介 2. 类加载简介 3. 类加载的过程 4. 双亲委派 5. GC垃圾回收 6. JVM的回收方式 7. 分代回收 1. JVM简介 JVM(Java虚拟机)是一个名字为Java的进程,是用于执行Java程序的虚拟机。 JVM会

额外说明

MySQL之逻辑备份与恢复

逻辑备份简介: 备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。 本质:导出的是SQL语句文件 优点:不论是什么存储引擎,都可以用mysqldump备成SQL语句 缺点:速度较慢,导入时可能会出现格式不兼容的突发情况,无

额外说明

idea mybatis-plus之MybatisX插件小知识(代码生成 哦)

MybatisX 1.MybatisX简介 2.自动生成代码 JPA提示 图标设置 文章顺序及整体目录可查看(点我即可) 1.MybatisX简介 MybatisX是一款基于IDEA的快速开发插件,由MyBatis-Plus团队开发维护,为效率而生。 它

额外说明

Unity 实战项目 ☀️| 接入科大讯飞语音SDK(三)在Unity端该如何操作! 系列共两万多字超级新手教程!

-博客主页:https://blog.csdn.net/zhangay1998 -欢迎点赞 - 收藏 ⭐留言 - 如有错误敬请指正! -本文由 呆呆敲代码的小Y 原创,首发于 CSDN- -未来很长,值得我们全力奔赴更美好的生活✨ 目录 -前言 -Uni

额外说明

机器学习 第三节 第四课

[toc] 轴 ( axis ) 在 numpy 中可以理解为方向, 使用 0, 1, 2... 数字表示, 对于一个一维数组, 只有一个 0 轴, 对于 2 维数组 ( shape(2,2) ), 有 0 轴和 1 轴, 对于一个三维数组 ( shap

额外说明

静态(static)存储 vs 堆(heap) vs 栈(stack)

静态(static)存储 vs 堆(heap) vs 栈(stack) 本文译自:Static Storage vs Heap vs Stack 以下是编译器存储分配的总结。 1 静态(static)与动态 静态(static):编译器可以只查看程序的文

额外说明

JavaScript创建与读写本地文件(IE&Firefox)

在IE下,可以使用ActiveXObject来实现 var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.CreateTextFile("

额外说明

死磕Lambda表达式(一):初识Lambda

弱小和无知不是生存的障碍,傲慢才是。——《三体》 什么是Lambda表达式 Lambda表达式是表示可传递匿名函数的一种简洁方式,Lambda表达式没有名称,但是有参数列表、函数主体、返回类型,还可能有一个可以抛出的异常列表。它是Java8新增的特性,有

ads via 小工具