SQL Hive Hadoop - 带有 Like 语句的多个通配符值

SQL Hive Hadoop - Multiple Wildcard Values with Like Statement

HIVE/Hadoop - 我将如何使用 like 语句创建具有多个通配符值的查询(我尝试了类似于命令但没有奏效)。

示例查询

select *
from schema.table a
where a.apple = '1'
and a.berry LIKE ('A10%','B10%')
;

以上方法无效。我确实尝试用 IN 替换 LIKE 但查询拒绝停止 运行,不知道为什么 IN 命令导致查询保持 运行 甚至不产生结果。在这里使用 OR 是我唯一的选择吗?我有大约 15 个值我想要通配符值。


作为旁注问题可以更好地帮助我理解上述问题, 我注意到我的查询 运行 使用时没有结束时间:

and a.berry IN ('A10%')

对比

and a.berry LIKE 'A10%'

我应该始终将 LIKE 与通配符 % 一起使用吗?

LIKEIN 不能做你想做的事:LIKE 对标量操作数进行操作,而 IN 不进行模式匹配。

您需要重复表达:

and (a.berry like 'A10%' or a.berry like 'B10%')

另一种选择是使用正则表达式 - 当值列表变长时,输入起来会更短:

and a.berry rlike '^(A10)|(B10)'

或者:

and a.berry rlike '^[AB]10'