mysql求2个或以上字段为NULL值的实例分享


本文摘自PHP中文网,作者小云云,侵删。

本文主要介绍了mysql 求解求2个或以上字段为NULL的记录,需要的朋友可以参考下,希望能帮助到大家。

核心代码


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

/*--------------------------------

求2个或以上字段为NULL 的记录

t1:

id, id1, id2, id3, id4, id5, id6

在t1 表中有个字段;

其中id是主键;

怎样打印其中个字段或以上为NULL 的记录id?

另外,存储过程中怎么实现按顺序一条一条读取记录最方便?

注:主键id 是没有顺序的,也可能是字符串的;

-----------------------------------------*/

drop table if exists t1;

create table t1(id int,id1 int,id2 int,id3 int,id4 int,id5 int,id6 int);

insert t1 select

1,1,1,1,1,null,null union all select

2,null,null,null,1,2,3 union all select

3,1,2,3,4,5,6 union all select

4,1,2,3,4,5,null union all select

5,null,3,4,null,null,null ;

delimiter $$

create procedure usp_c_null()

begin

declare n_c int;

declare idd int;

declare cur cursor for

select id,case char_length(concat(ifnull(id1,'@'),ifnull(id2,'@'),ifnull(id3,'@'),ifnull(id4,'@'),ifnull(id5,'@'),ifnull(id6,'@')))

-char_length(replace(concat(ifnull(id1,'@'),ifnull(id2,'@'),ifnull(id3,'@'),ifnull(id4,'@'),ifnull(id5,'@'),ifnull(id6,'@')),'@','') )

 when 6 then 6 when 5 then 5 when 4 then when 3 then 3 when 2 then 2 when 1 then 1 else 0 end as c from t1;

declare exit HANDLER for not found close cur ;

open cur;

repeat

fetch cur into idd,n_c;

if(n_c>=2) then

select * from t1 where id=idd;

end if ;

until 0 end repeat;

close cur;

end ;

$$

delimiter ;

/*

+------+------+------+------+------+------+------+

| id  | id1 | id2 | id3 | id4 | id5 | id6 |

+------+------+------+------+------+------+------+

|  1 |  1 |  1 |  1 |  1 | NULL | NULL |

+------+------+------+------+------+------+------+

1 row in set (0.10 sec)

+------+------+------+------+------+------+------+

| id  | id1 | id2 | id3 | id4 | id5 | id6 |

+------+------+------+------+------+------+------+

|  2 | NULL | NULL | NULL |  1 |  2 |  3 |

+------+------+------+------+------+------+------+

1 row in set (0.14 sec)

+------+------+------+------+------+------+------+

| id  | id1 | id2 | id3 | id4 | id5 | id6 |

+------+------+------+------+------+------+------+

|  5 | NULL |  3 |  4 | NULL | NULL | NULL |

+------+------+------+------+------+------+------+

1 row in set (0.17 sec)

*/

相关推荐:

MySQL中的唯一性约束与NULL实例详解

JavaScript中undefined与null的区别详解

如何用js判断null值

以上就是mysql求2个或以上字段为NULL值的实例分享的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

mysql黑框怎么改密码?mysql黑窗口怎么改密码?

sql与mysql区别与联系

mysql怎么使用delete

mysql shell是什么

mysql怎么指定存储引擎?

mysql索引做什么?

mysql分组后,如何统计记录条数

mysql数据库的库表的操作介绍(代码示例)

mysql索引更新要多久

深入了解mysql中的join语句算法及优化方法

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...