mysql中 a_MySQL中N/A和NULL对SELECT...INTO语句的影响

一、前言

编写mysql函数,函数运行结果错误,发现是由于使用SELECT...INTO对重复使用的变量赋值失败导致错误。

重复使用一个变量,第二次变量赋值失败,仍然是首次赋值的值,原始是第二次查询结果是N/A。

SELECT N/A INTO 变量;   -- 这种赋值方式会赋值失败,会保留上次的值。

二、测试

1.创建测试数据表

CREATE TABLE test ( id INT auto_increment, num INT, PRIMARY KEY ( id ) );

2.插入数据

INSERT INTO `demo`.`test`(`id`, `num`) VALUES (2, NULL);

INSERT INTO `demo`.`test`(`id`, `num`) VALUES (3, 3);

3.测试

(1)情景一:数据库中无此条数据

set @a = 100;

SELECT num from test where id = '1' into @a;

-- SELECT num from test where id = '2' into @a;

-- SELECT num from test where id = '3' into @a;

SELECT @a;

结果:100

(2)情景二:数据库中存在此条数据,但是数据为null

set @a = 100;

-- SELECT num from test where id = '1' into @a;

SELECT num from test where id = '2' into @a;

-- SELECT num from test where id = '3' into @a;

SELECT @a;

结果:Null

(3)情景三:数据库中存在词条数据,并且值是3

set @a = 100;

-- SELECT num from test where id = '1' into @a;

-- SELECT num from test where id = '2' into @a;

SELECT num from test where id = '3' into @a;

SELECT @a;

结果:3

本文地址:https://blog.csdn.net/cs373616511/article/details/107318142

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值