MySQL Coalesce()函数-确定哪个字段是非空的

MySQL Coalesce()函数-确定哪个字段是非空的,mysql,coalesce,Mysql,Coalesce,我正在编写一个查询,获取用户在我们网站上的权限。它首先检查权限是否有任何覆盖,然后检查网站上用户角色的权限,如果这些权限为空,则默认为0(即无权限..其他值将大于1)。 我认为coalesce()将是这里的最佳选择,因为我可以这样做 coalesce(override, role, 0); 其中override和role是数据库中的字段 但是,如果它确实是一个覆盖权限,我需要知道,因为我会显示一个图标来指示它。是否有任何方法可以明确地确定这一点?添加一个带有布尔值的单独列作为覆盖 select

我正在编写一个查询,获取用户在我们网站上的权限。它首先检查权限是否有任何覆盖,然后检查网站上用户角色的权限,如果这些权限为空,则默认为0(即无权限..其他值将大于1)。 我认为coalesce()将是这里的最佳选择,因为我可以这样做

coalesce(override, role, 0);
其中override和role是数据库中的字段


但是,如果它确实是一个覆盖权限,我需要知道,因为我会显示一个图标来指示它。是否有任何方法可以明确地确定这一点?

添加一个带有布尔值的单独列作为覆盖

select coalesce(override,role,0), (override is not null) as override_enabled

您需要跟踪单个空值,例如,
按原样选择ifnull(覆盖,“非覆盖”)