SQL将字符转换为布尔值

杜威

我的表中有一行带有char值。当值为NULL时,应输出false。如果该值不为NULL,则应输出true。

因此,当我尝试将其设置user_group.tUser为0或1时,会出现此错误:

无效的列名“ false”。

无效的列名“ true”。

SELECT COALESCE((SELECT name
                FROM   v_company 
                WHERE  companyId = userView.companyId), ' ') AS company, 
    userView.value                                         AS companyUser, 
    userView.display                                       AS displayedUser,
    CASE 
        WHEN user_group.tUser IS NULL THEN 0
        ELSE 1
    END                                             AS userIsMemberOfGroup 
FROM   v_user userView 
    LEFT OUTER JOIN cr_user_group user_group
                    ON ( user_group.group = 'Administrators' 
                        AND user_group.tUser = userView.value ) 
ORDER  BY company ASC, 
        displayedUser ASC 
戈登·利诺夫

我认为这是您想要的逻辑:

SELECT COALESCE(v.name, ' ') as company, 
       u.value as companyUser, u.display as displayedUser,
       (EXISTS (SELECT 1
                FROM cr_user_group ug
                WHERE ug.group = 'Administrators' AND
                      ug.tUser = uv.value
               ) 
       ) as userIsMemberOfGroup 
FROM v_user u LEFT JOIN
     v_company c 
     ON c.companyId = v.companyId
ORDER BY company ASC, displayedUser ASC ;

通常,MySQL在布尔值和数字之间转换非常灵活,0对于false和1true而言。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章