SQL语句:如何查询出一张表中所有字段里面内容为空

SQL语句:如何查询出一张表中所有字段里面内容为空,第1张

是mysql吗 可以这样 比如你有一个文本 文本里有两列数据用逗号隔开 然后你就可以用 load data infile '文件路径' into table tablename fields terminated by ',' lines terminated by '\n' (col1,col2) 别的字段不管就好了,当然你的表设计时候就需要默认为null

describe table name
sample
mysql> describe shop ;
+---------+--------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------------------+------+-----+---------+-------+
| article | int(4) unsigned zerofill | NO | PRI | 0000 | |
| dealer | char(20) | NO | PRI | | |
| price | double(16,0) | NO | MUL | 0 | |
+---------+--------------------------+------+-----+---------+-------+
3 rows in set (000 sec)

假设表为 t_1有两列为 col_1,col_2
查询条件v_col_1,v_col_2不知道有没有值
SELECT FROM t_1
WHERE col_1 = (CASE WHEN v_col_1 IS NULL THEN col_1 ELSE v_col_1 END)
AND col_2 = (CASE WHEN v_col_2 IS NULL THEN col_2 ELSE v_col_2 END);

1IF()函数的使用
IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。
SELECT IF(TRUE,'A','B'); -- 输出结果:A
SELECT IF(FALSE,'A','B'); -- 输出结果:B12
2IFNULL()函数的使用
IFNULL(expr1,expr2),如果expr1的值为null,则返回expr2的值,如果expr1的值不为null,则返回expr1的值。
SELECT IFNULL(NULL,'B'); -- 输出结果:B
SELECT IFNULL('HELLO','B'); -- 输出结果:HELLO12
3NULLIF()函数的使用
NULLIF(expr1,expr2),如果expr1=expr2成立,那么返回值为null,否则返回值为expr1的值。
SELECT NULLIF('A','A'); -- 输出结果:null
SELECT NULLIF('A','B'); -- 输出结果:A12
4ISNULL()函数的使用
ISNULL(expr),如果expr的值为null,则返回1,如果expr1的值不为null,则返回0。
SELECT ISNULL(NULL); -- 输出结果:1
SELECT ISNULL('HELLO'); -- 输出结果:0

利用系统表information_schemacolumns来查吧:
select table_schema,table_name,column_name
from information_schemacolumns
where table_name='t111' and is_nullable='NO'

1)写入时使用NULL
insert into xxx values (NULL,NULL,NULL)
2)读取时使用empty()
if(empty(row["col3"])){
//do something
}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13335514.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-17
下一篇 2023-07-17

发表评论

登录后才能评论

评论列表(0条)

保存