将字符串数组转换为WHERE子句中的自定义枚举类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将字符串数组转换为WHERE子句中的自定义枚举类型相关的知识,希望对你有一定的参考价值。
我正在尝试将字符串列表转换为自定义枚举类型的列表。我正在寻找的效果可以通过以下方式实现:
select * from table_1 where column_a in (cast('ENUM1' AS custom_enum), cast('ENUM2' AS custom_enum))
但是由于我试图通过sql枚举类型的带注释的筛选器来绕过我遇到的某些JPA /休眠问题,因此我需要将枚举字符串动态添加到列表中。因此,我试图弄清楚如何将整个字符串列表转换为enum_types列表。我猜是这样的:
select * from table_1 where column_a in (cast('ENUM1', 'ENUM2' AS custom_enum[]))
但是我没有尝试过太多,给我带来了好运。
答案
使用= ANY
代替IN
。数组文字应该用引号引起来:
select *
from table_1
where column_a = any (cast('ENUM1, ENUM2' as custom_enum[]))
以上是关于将字符串数组转换为WHERE子句中的自定义枚举类型的主要内容,如果未能解决你的问题,请参考以下文章