gpt4 book ai didi

mysql - 在 CASE 的结果上使用 LIKE 搜索数据

转载 作者:搜寻专家 更新时间:2023-10-30 23:14:12 24 4
gpt4 key购买 nike

我想使用 LIKE sql 语法来过滤我的数据库输出的结果。首先,我检索要与 CASE 和 WHEN 条件一起使用的数据。就像下面...

            , CASE
WHEN ACC.ACCOUNT_TYPE = 1 THEN BNK.DESCRIPTION1
WHEN ACC.ACCOUNT_TYPE = 2 THEN BNK.DESCRIPTION2
WHEN ACC.ACCOUNT_TYPE = 3 THEN BNK.DESCRIPTION3
END AS item

然后,我想用 LIKE 语法检查这个结果。

        WHERE  ACC.RECORD_DEL_FLG = 0
AND item LIKE '%%'

已抛出 MYSQL 异常。未知列“项目”。我的问题是该怎么做?在此先感谢大家。请帮我弄清楚。

最佳答案

您不能使用在 WHERE 子句的同一级别上创建的 ALIAS。你有两个选择,

一,将其包装在子查询中

SELECT *
FROM
(
SELECT ....,
CASE
WHEN ACC.ACCOUNT_TYPE = 1 THEN BNK.DESCRIPTION1
WHEN ACC.ACCOUNT_TYPE = 2 THEN BNK.DESCRIPTION2
WHEN ACC.ACCOUNT_TYPE = 3 THEN BNK.DESCRIPTION3
END item
FROM tableName
) x
WHERE x.Item LIKE '%%'

其次,在 WHERE 子句上使用整个表达式,

WHERE ACC.RECORD_DEL_FLG = 0 AND 
CASE WHEN ACC.ACCOUNT_TYPE = 1 THEN BNK.DESCRIPTION1
WHEN ACC.ACCOUNT_TYPE = 2 THEN BNK.DESCRIPTION2
WHEN ACC.ACCOUNT_TYPE = 3 THEN BNK.DESCRIPTION3
END LIKE '%%'

不能使用ALIAS的原因是因为在SQL操作顺序中,WHERE子句在SELECT<之前执行 子句。下面是列表 SQL 操作顺序:

  • FROM子句
  • WHERE 子句
  • GROUP BY 子句
  • HAVING子句
  • SELECT子句
  • ORDER BY 子句

关于mysql - 在 CASE 的结果上使用 LIKE 搜索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16665494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com