我需要查询具有这样的值的列
列名称是位置:
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/