如果我想检查字段是否包含除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)
Run Code Online (Sandbox Code Playgroud)
Ric*_*iwi 20
空和空意味着NULL +''(空字符串)?
select CASE WHEN description IS NULL or description = '' THEN 'null or empty'
ELSE 'not null' END
AS 'description'
Run Code Online (Sandbox Code Playgroud)
在您的原始查询中,不存在第三种情况,因为IS NULL和IS NOT NULL是互补的,它们之间已经涵盖了所有可能性.
此外,除非您使用区分大小写的排序规则(非常罕见,除非您特别提名,否则永远不会默认排序),MySQL不是Oracle - 这两个查询的工作方式相同:
where name like '%Test%' or name like '%test%'
where name like '%test%'
Run Code Online (Sandbox Code Playgroud)
因为MySQL会不区分大小写匹配字符串
Sli*_*liq 14
简单IF解决方案:
IF (my_field = '', "not null", "null")
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我个人喜欢这样使用它(简写语法):
IF (my_field = '', 1, 0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53452 次 |
| 最近记录: |