SELECT
    user_groups.*,
    groups.grp_display_name,
    CASE user_groups.uug_active
        WHEN '1' THEN 'YES'
        WHEN '0' THEN 'NO'
    END AS usr_active
FROM
    user_groups,
    groups
WHERE
    user_groups.uug_is_deleted = 0
        AND user_groups.group_id = groups.id


这是我针对sql的case语句.....但是问题是我无法在搜索查询中使用别名。

例如:这是我的搜索查询

ug.uug_active  LIKE "+ Query.escapeVal('%'+Query.escape(body.search.value)+'%')

最佳答案

您不能在where子句中使用别名,只能在group by或haveing子句中使用。您有2个选择:


在where子句中重复完整的大小写结构,并过滤表达式:...where case ... end like ...
过滤hading子句,或移动查询而不过滤到子查询中,然后过滤外部查询。


尽管在此特定示例中,我将在应用程序级别将搜索表达式转换为1或0,然后搜索0或1,而不是字符串。

关于mysql - 我想在MySQL中使用if -else语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33886786/

10-13 01:23