我需要查询具有这样的值的列

列名称是位置:

c:\users\abcd\hello
c:\users\xyabcddd\hello
c:\users\abcder\hello

我需要精确查询值“abcd”
select * from table where locations like '%\abcd\'
select * from table where locations like '%\\abcd\\'
select * from table where locations like '%\\\\abcd\\\\'

最重要的是没有工作。

如果我如下查询
select *
from table
where locations like '%abcd%'

它将获取所有结果,而不是确切的结果
c:\users\abcd\hello
c:\users\xyabcddd\hello
c:\users\abcder\hello

但是我需要

正是这个'c:\ users \ abcd \ hello'

最佳答案

一切正常。

select locations from tablename where
(instr(lower(locations),'\\abcd\\') IS NOT NULL)
AND (instr(lower(locations),'\\abcd\\') != 0)

这只会获取
c:\users\abcd\hello

引用:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-StringFunctions

关于regex - 使用\(反斜杠)在HIVE hadoop中查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35797830/

10-16 06:01