mysql case 的值非空
时间: 2024-09-25 11:00:52 浏览: 22
在MySQL的`CASE`语句中,如果你想要确保某个条件分支的值不为空,可以在`WHEN`后的表达式前添加`IS NOT NULL`。这样,只有当指定字段的值不是NULL时,才会执行该分支的查询。例如:
```sql
SELECT * FROM table_name
WHERE
CASE field_name
WHEN field_name IS NOT NULL AND field_name = 'value1' THEN condition1
WHEN field_name IS NOT NULL AND field_name = 'value2' THEN condition2
ELSE default_condition
END IS NOT NULL;
```
在这个例子中,只有当`field_name`不仅等于`value1`或`value2`,而且它的值也不是NULL时,才执行对应条件下的`condition1`或`condition2`。如果`field_name`为空(即NULL),则会跳过这些分支,执行`default_condition`(如果有的话)。
如果你只想检查特定分支是否为空,可以单独针对那个分支进行检查,比如:
```sql
SELECT * FROM table_name
WHERE
CASE WHEN field_name = 'value1' THEN field_name ELSE NULL END IS NOT NULL
```
这里,如果`field_name`等于'value1',那么整个`CASE`表达式的值就是'field_name',否则返回NULL。这个表达式将只在'field_name'不为空时返回非NULL值。
阅读全文