ich hab zwei Tabellen die ich miteinander überprüfen will. Dabei werden jeweils eine Spalte aus beiden Tabellen miteinander über den “like” Operator miteinander verglichen. Allerdings will ich eine höhrere Trefferqoute mit Wildcards erreichen.
Mein Befehl sieht bisher so aus:
select * from tabelle1 as A, tabelle2 as B where A.spalte1 like B.spalte2
Und jetzt hätte ich gerne jeweils ein Wildcard vor und nach dem abzugleichenden Wort:
select * from tabelle1 as A, tabelle2 as B where A.spalte1 like %B.spalte2%
test=*# select * from tab_a;
id | s
----+------
1 | foo
2 | bar
3 | batz
(3 rows)
test=*# select * from tab_b;
id | s
----+----------------------------
1 | das ist foo in zeile 1
2 | das ist wurscht in zeile 2
(2 rows)
test=*# select * from tab_a, tab_b where length(tab_b.s) > length(regexp_replace(tab_b.s,tab_a.s,''));
id | s | id | s
----+-----+----+------------------------
1 | foo | 1 | das ist foo in zeile 1
(1 row)