【mysql--求解求2個或以上欄位為NULL 的記錄】
/*--------------------------------
求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 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)
*/
相關文章
- 對錶中的欄位設定了預設值,新增記錄後卻發現該欄位為nullNull
- mysql 查詢欄位為null或者非nullMySqlNull
- MySQL-去掉不為null的欄位MySqlNull
- Mybatis-Plus 更新欄位為 NULLMyBatisNull
- DB2的字元型欄位,NULL與空串DB2字元Null
- 資料庫索引欄位請不要為NULL資料庫索引Null
- sql 統計多個欄位的和(如果欄位中含有 null 的處理)SQLNull
- 為什麼資料庫欄位要使用NOT NULL?資料庫Null
- 技術乾貨| MongoDB如何查詢Null或不存在的欄位?MongoDBNull
- LOB欄位資料清理 - 更新為null後move lobNull
- laravel-query-builder 對於欄位 值為 null的排序方式LaravelUINull排序
- http請求頭個欄位解釋HTTP
- awk 中的欄位、記錄和變數變數
- 查mysql欄位中的數字記錄MySql
- sql根據多個欄位查詢重複記錄SQL
- java查詢資料庫,int型欄位為null的情況Java資料庫Null
- json轉化保留null欄位JSONNull
- MySQL中NULL欄位的比較問題MySqlNull
- springboot中controller返回實體類中過濾掉等於null或為空的欄位Spring BootControllerNull
- 欄位修改記錄操作日誌的實現
- MySQL資料庫查詢多個欄位值全部相同的記錄MySql資料庫
- 怎樣Oracle把多條記錄的相同欄位拼成一個字串Oracle字串
- MySQL null值欄位是否使用索引的總結MySqlNull索引
- LOB欄位EMPTY_LOB和NULL的區別Null
- 記錄一下mysql多欄位排序遇到的一個好玩的現象MySql排序
- 一個500萬記錄的table, 一欄位索引,不過會有空值,是保持null好,還是讓它有預設值好索引Null
- wda 查詢控制元件的 using 欄位求解惑控制元件
- 【Mongo】mongo更新欄位為另一欄位的值Go
- 面試題:問題1、查詢每個學期每門課程最高分記錄(包含全部5個欄位) 問題2、查詢與前一個學期相比成績有提高的記錄(包含全部5個欄位)面試題
- java中檢驗字串中包含某個字元或欄位的方法Java字串字元
- HTTP請求頭中的refer欄位HTTP
- fastadmin 新增欄位記圖片欄位AST
- 請求首部欄位詳解-四大首部欄位之一
- 查欄位指定資料後一行記錄
- [PY3]——根據某個特定的欄位來分組迭代訪問一個欄位或序列?/ itertools.groupby( )函式函式
- Oracle update set欄位=nvl(n,0)還報《ORA-01407:無法更新欄位為NULL》原因分析和解決OracleNull
- 動態為10g資料庫的表新增欄位,到256個欄位,hung住了?資料庫
- HTTP請求頭的Content-Type欄位HTTP