如何在 postgres 中使用 ilike 或 like 连接表时使用特殊字符?



我在帖子中有以下表格:

TABLE1:
col1        col2
NCT03009058 nivolumab (opdivo)  
NCT03009059 pembrolizumab (keytruda)
NCT03009060 zumab
NCT03009061 pembrolizumab-keytruda
TABLE2:
col1    col2      
1   nivolumab
2   opdivo
2   pembrolizumab
3   keytruda
3   zumab
4   pembrolizumab
3   keytruda
5   0.4% lidocaine hydrochloride and 5% dextrose injection

我想在 col2 上加入上面的表格,但"喜欢"和"ilike"忽略了有特殊字符的行。我想在连接时使用特殊字符的组合,例如"|;|-|/|(|)'我怎样才能达到以下结果?

所需的输出为:

col1        col2                          col3
NCT03009058 nivolumab (opdivo)        nivolumab 
NCT03009058 nivolumab (opdivo)        opdivo
NCT03009059 pembrolizumab (keytruda)  keytruda
NCT03009059 pembrolizumab (keytruda)  pembrolizumab 
NCT03009060 zumab                     zumab
NCT03009061 pembrolizumab-keytruda    keytruda
NCT03009061 pembrolizumab-keytruda    pembrolizumab

这里的任何建议都会非常有帮助。谢谢

我有一些接近的东西:

select * 
from table1 join table2
on to_tsvector(table1.col2) @@ to_tsquery(table2.col2);
col1     |           col2           | col1 |     col2      
-------------+--------------------------+------+---------------
NCT03009058 | nivolumab (opdivo)       |    1 | nivolumab
NCT03009058 | nivolumab (opdivo)       |    2 | opdivo
NCT03009059 | pembrolizumab (keytruda) |    3 | pembrolizumab
NCT03009061 | pembrolizumab-keytruda   |    3 | pembrolizumab
NCT03009060 | zumab                    |    3 | zumab
NCT03009059 | pembrolizumab (keytruda) |    3 | keytruda
NCT03009061 | pembrolizumab-keytruda   |    3 | keytruda
NCT03009059 | pembrolizumab (keytruda) |    4 | pembrolizumab
NCT03009061 | pembrolizumab-keytruda   |    4 | pembrolizumab
(9 rows)

所以我找到了这个问题的解决方案。我没有使用to_tsquery,而是使用了plainto_tsquery并且它有效!!

最新更新