mysql 求解求2個(gè)或以上字段為NULL的記錄
更新時(shí)間:2017年05月20日 14:00:37 投稿:mdxy-dxy
這篇文章主要介紹了mysql 求解求2個(gè)或以上字段為NULL的記錄,需要的朋友可以參考下
核心代碼
/*-------------------------------- 求2個(gè)或以上字段為NULL 的記錄 t1: id, id1, id2, id3, id4, id5, id6 在t1 表中有個(gè)字段; 其中id是主鍵; 怎樣打印其中個(gè)字段或以上為NULL 的記錄id? 另外,存儲(chǔ)過(guò)程中怎么實(shí)現(xiàn)按順序一條一條讀取記錄最方便? 注:主鍵id 是沒(méi)有順序的,也可能是字符串的; -----------------------------------------*/ 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 4 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) */
相關(guān)文章
MySQL 如何查找并刪除重復(fù)記錄的實(shí)現(xiàn)
這篇文章主要介紹了MySQL 如何查找并刪除重復(fù)記錄的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08MySQL遷移到Oracle數(shù)據(jù)庫(kù)的超詳細(xì)步驟和方法總結(jié)
今天接到一個(gè)任務(wù),讓我把MySQL中的表與數(shù)據(jù)移植到Oracle中,所以這里總結(jié)下,這篇文章主要給大家介紹了關(guān)于MySQL遷移到Oracle數(shù)據(jù)庫(kù)的超詳細(xì)步驟和方法,需要的朋友可以參考下2023-11-11mysql部分字符存儲(chǔ)報(bào)錯(cuò) Incorrect string value問(wèn)題解決
MySQL中的utf-8字符集并不完全支持utf-8,本文這要介紹了mysql部分字符存儲(chǔ)報(bào)錯(cuò) Incorrect string value問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下2023-07-07mysql數(shù)據(jù)庫(kù)中各種鎖歸納總結(jié)
相對(duì)于其他的數(shù)據(jù)庫(kù)而言,MySQL的鎖機(jī)制比較簡(jiǎn)單,最顯著的特點(diǎn)就是不同的存儲(chǔ)引擎支持不同的鎖機(jī)制,這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)庫(kù)中各種鎖歸納總結(jié)的相關(guān)資料,需要的朋友可以參考下2024-08-08mysql通過(guò)find_in_set()函數(shù)實(shí)現(xiàn)where in()順序排序
這篇文章主要介紹了mysql通過(guò)find_in_set()函數(shù)實(shí)現(xiàn)where in()順序排序的相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。2017-10-10MySQL中可為空的字段設(shè)置為NULL還是NOT NULL
今天小編就為大家分享一篇關(guān)于MySQL中可為空的字段設(shè)置為NULL還是NOT NULL,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03