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

前言

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

这里就需要自定义变量。

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;
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

互联网全栈开发实战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值