首页 > 试题广场 >

Mysql中表student_table(id,name,b

[单选题]
Mysql中表student_table(id,name,birth,sex),插入如下记录:
('1001' , '' , '2000-01-01' , '男');
('1002' , null , '2000-12-21' , '男');
('1003' , NULL , '2000-05-20' , '男');
('1004' , '张三' , '2000-08-06' , '男');
('1005' , '李四' , '2001-12-01' , '女');
执行 select * from student_table where length(name) >= 0 的结果行数是()?
  • 1
  • 2
  • 3
  • 4
按照插入语句,结果如下:
    id name
1001
1002 NULL  
1003 NULL
1004 张三
1005  李四
注意:1001和1002是不一样的,一个是空字符串,一个是NULL。针对这两种数据使用length()函数结果是不相同的。
针对1001 length(name)结果是0,针对1002、1003 length(name)结果是空值NULL
因此题干where length(name) >= 0 会筛选出 1001、1004、1005三条数据

发表于 2021-12-21 11:43:25 回复(3)
空字符串结果为0,空值NUll不显示。
发表于 2022-01-21 16:32:26 回复(0)
Mysql 会计算空字符串,但注意 Oracle 会将其视为 null.

Mysql:

Oracle:

发表于 2022-05-19 15:00:48 回复(0)
NULL就是在字段中存储NULL值,空值也就是字段中存储空字符('')。

发表于 2021-12-19 19:06:42 回复(2)
length 无法对null左筛选

发表于 2024-02-26 00:33:54 回复(0)
草率了,大于等于0,只注意大于0了
发表于 2023-09-14 10:41:21 回复(0)
length 无法对null做筛选
发表于 2022-10-23 16:00:27 回复(0)
两者的返回值不同
select length("") >= 0 ; #返回:1

select length(null) >= 0; #返回:null


发表于 2022-08-23 11:08:43 回复(0)
不应该是4吗?
发表于 2021-12-21 09:05:23 回复(1)