问题描述
我在联接和后续更新中使用的两个单独的表中有列。我希望能够查看一列是否在第二列中捕获了所有内容。
例如,这是每列内容的样本:
city_table1 | city_table2
Portsmouth Portsmouth,New Hampshire,USA
我希望能够在select语句中具有where子句,该子句将根据city_table1中的内容匹配两列(但我不能仅根据内容差异进行左右修剪),所以我我正在设想类似的东西
where city_table1 like ('%' + city_table2 '%')
我的逻辑在这里吗?我应该在where子句中引用两个字段吗?我曾在postgres中尝试过此方法,但当我知道语法正确时,它没有任何作用。
谢谢!
解决方法
Postgres使用||
连接字符串。所以:
where city_table2 like ('%' || city_table1 || '%')
此外,您还可以进行比较。 shorter 字符串被'%'
包围。
而且,使用正则表达式会更简单:
where city_table2 ~ city_table1