我想在mysql中使用if -else statemnt

时间:2015-11-24 06:24:34

标签: mysql

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语句.......但问题是我无法在搜索查询中使用别名。

例如:这是我的搜索查询

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

1 个答案:

答案 0 :(得分:0)

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

  1. 在where子句中重复完整的case结构,并对表达式...where case ... end like ...
  2. 进行过滤
  3. 在having子句中过滤或移动查询而不过滤到子查询中,并在外部查询中过滤。
  4. 虽然,在这个特定的例子中,我会在应用程序级别将搜索表达式转换为1或0并搜索0或1,而不是字符串。