如果我想检查该字段是否有除 null 和空之外的其他字符,查询是否正确?
select CASE WHEN description IS NULL THEN 'null'
WHEN description IS NOT NULL THEN 'not null' ELSE 'something else' END
AS 'description'from milestone where name like '%Test%' or name like '%test%';
+-------------+
| description |
+-------------+
| not null |
+-------------+
1 row in set (0.00 sec)
Null 和empty 意味着NULL + '' (空字符串)?
select CASE WHEN description IS NULL or description = '' THEN 'null or empty'
ELSE 'not null' END
AS 'description'
在您的原始查询中,不可能出现第三种情况,因为 IS NULL 和 IS NOT NULL 是互补的,它们之间涵盖了所有可能性。
另外,除非您使用区分大小写的排序规则(非常罕见,并且默认情况下不会使用,除非您特别指定一个排序规则),否则 MySQL 不是 Oracle - 这两个查询的工作方式相同:
where name like '%Test%' or name like '%test%'
where name like '%test%'
因为MySQL会不区分大小写地匹配字符串
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)