首页 > 解决方案 > 比较两列的字符串

问题描述

我在 Postgresql 的表中工作。一栏有名字,一栏有人的完整地址,有时包括名字。我想找到第一个名称列中的条目在第二列中的所有行。

例子

| id | firts_name   | address   |
|---|--------|------------------------|
| 1 | anna   | anna miller street 1   |
| 2 | bob    | b. smith street 2      |
| 3 | charly | charly wilson street 3 |

我想返回第 1 列和第 3 列

我试过这个

select id, first_name, address from table1
where first_name ~ address

我得到的结果总是空的。

标签: sqlpostgresql

解决方案


波浪号 ( ~) 是正则表达式匹配运算符;在您的情况下,您可能可以使用简单的模式匹配运算符~~(或LIKE),并且您确实需要通过添加通配符来创建匹配模式:

select id, first_name, address from table1
where address ~~ concat('%', first_name, '%')

小提琴手


推荐阅读