Impala正则表达式在管道分隔列表中找到“2”,但不是“255”

时间:2015-07-11 05:31:23

标签: mysql sql regex impala

originally asked for help在以竖线分隔的列表中查找值,其中值必须包含45,但不得包含23。但是,接受的解决方案本身会返回值255

我的数据集包含管道分隔值,可以是01234 0r {{1} },例如:

255

我需要一个返回包含| colA | ____________ | 1|1|0|255 | | 5|4|4|2 | | 5|4|4|3 | | 5|4|4|4 | | 1|0|0|0 | | 0|2|0|1|2 | | 5|5|0|5 | | 0|5 | | 5|5|255|255| | 0|3|1|2|3 | | 5|5|5|2|3|3| | 0|2|0|0|0|2| | 5|255|1|1|5| | 4|255|4 | | 2|2|3 | | 255|0 | | 5 | | 5|5|1 | 4值但从不52的行的查询。

3

我最接近的是这个查询:

|    colA    |
 ____________
| 5|4|4|3    |   
| 5|4|4|4    |
| 5|5|0|5    |
| 0|5        |
| 5|5|255|255|
| 5|255|1|1|5|
| 4|255|4    |
| 5          |
| 5|5|1      |

但它缺少以下条目,所以有些不可思议:

  • SELECT clin.clin_sig FROM clinvar clin WHERE (clin_sig NOT REGEXP '3|2[^5]' AND clin_sig REGEXP '4|[^25]5')
  • 5
  • 5|255
  • 5|5|5|5|5|5|5
  • 5|0
  • 5|255|255

我也试过这个,但它很慢但仍然缺少一些结果:

5|5|1

1 个答案:

答案 0 :(得分:2)

    clin_sig     REGEXP '^[[:<:]](4|5)[[:>:]]$'
AND clin_sig NOT REGEXP '^[[:<:]](2|3)[[:>:]]$'

请提供更多测试用例。