请教mysql中,使用select语句给变量循环赋值问题
select@a:=列名bfrom表c其中列b是表c中的某列,这种方式给变量a赋值,列b中有多行数据,为何返回的结果变量a有很多行?而在sqlserver中只会保留最后一...
select @a:=列名b from 表c
其中列b是表c中的某列,这种方式给变量a赋值,列b中有多行数据,为何返回的结果变量a有很多行?
而在sql server中只会保留最后一行的值作为变量a的最后赋值,是mysql和sql server机制不同吗?如何在mysql中实现sql server的这种赋值结果(我只要最后一行的结果作为变量的值) 展开
其中列b是表c中的某列,这种方式给变量a赋值,列b中有多行数据,为何返回的结果变量a有很多行?
而在sql server中只会保留最后一行的值作为变量a的最后赋值,是mysql和sql server机制不同吗?如何在mysql中实现sql server的这种赋值结果(我只要最后一行的结果作为变量的值) 展开
2个回答
展开全部
通过降序 拿到 最后 一条 记录 就行了
比如 表c 的主键 是ID
SELECT b FROM ORDER BY ID DESC
比如 表c 的主键 是ID
SELECT b FROM ORDER BY ID DESC
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
mysql的特性如此,你如果要@a=最后一行记录的值,得借助于cursor指针
更多追问追答
追问
能帮忙细说一下吗?如果要实现@a为最后一行值,指针怎么写?
追答
试了一下,不知为何,全局变量不行,只能用局部变量
DECLARE done tinyint default 0;
DECLARE a varchar(50);
DECLARE cs CURSOR FOR SELECT key1 FROM tb1;
DECLARE continue handler for sqlstate '02000' set done=1;
open cs;
while done1 do
fetch cs into a;
end while;
close cs;
SELECT a;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询