MySQL中N/A和NULL对SELECT...INTO语句的影响
程序员文章站
2022-03-08 22:20:34
一、前言 编写mysql函数,函数运行结果错误,发现是由于使用SELECT...INTO对重复使用的变量赋值失败导致错误。重复使用一个变量,第二次变量赋值失败,仍然是首次赋值的值,原始是第二次查询结果是N/A。SELECT N/A INTO 变量; -- 这种赋值方式会赋值失败,会保留上次的值。二、测试1.创建测试数据表CREATE TABLE test ( id INT auto_increment, num INT, PRIMARY KEY ( id ) );......
一、前言
编写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
下一篇: ES6学习4章:字符串的扩展
推荐阅读
-
MySQL中NULL对索引的影响深入讲解
-
MySQL中limit对查询语句性能的影响
-
MySQL中N/A和NULL对SELECT...INTO语句的影响
-
MySQL中采用类型varchar(20)和varchar(255)对性能上的影响_MySQL
-
MySQL中join语句的基本使用教程及其字段对性能的影响_MySQL
-
探究MySQL中索引和提交频率对InnoDB表写入速度的影响_MySQL
-
MySQL中采用类型varchar(20)和varchar(255)对性能上的影响_MySQL
-
MySQL中NULL对索引的影响深入讲解
-
MySQL中NOT IN语句对NULL值的处理
-
探究MySQL中索引和提交频率对InnoDB表写入速度的影响_MySQL