我想用下面的查詢蜂巢查詢語言RLIKE查詢
select * from mytable where mycolumn rlike '\d~[\d\.]+~\d~[\d\.]+~\d~2~(33|44)`
這裏查詢在MYTABLE
id | mycolumn
---|--------------------------------
1 | 1~2.3.1~9~333.2~3~2~33
2 | 1~1.4.3~4~233.2~4~2~44
3 | 1~53.0.2785.124~4~6.0.1~5~2~33
4 | 1~3~3~3~3~6~3
但是一些樣本數據,結果總是空的。
如Hive Query Language Manual所述,
NULL,如果A或B是NULL,TRUE,如果A的任何(可能爲空)子串在Java正則表達式匹配乙,否則爲FALSE。例如,'foobar'RLIKE'foo'評估爲TRUE,'foobar'RLIKE'^ f。* r $'也是如此。
我在Java中測試了RegExp,它工作正常。還試圖用\\
代替\
,並試圖用\~
代替~
,但沒有運氣。我用來測試
的Java代碼如下
Pattern p = Pattern.compile("\\d~[\\d\\.]+~\\d~[\\d\\.]+~\\d~2~(33|44)");
誰能告訴什麼錯查詢?謝謝!
事實證明,蜂巢不支持' \ D'。也懷疑它是否支持其他預定義的字符 – Jenson