2017-05-10 5 views
0

Ich habe zwei Tabellen, in denen ich zwei Listen mit einer LIKE-Anweisung vergleichen möchte. Aber ich möchte die Textzeichenfolge für den Vergleich nicht eingeben. Anstatt also mit:LIKE für zwei getrennte Spaltenausgänge verwenden

WHERE a.column1 LIKE '%pattern1%' OR a.column1 LIKE '%b.pattern2%' 

Ich möchte die Abfrage sagen

WHERE a.column1 LIKE b.column1 

Ich weiß, das bei weitem nicht optimal ist, mehrere LIKES verwenden, aber für die Zwecke dieser Abfrage das ist genau das, was ich brauche, um machen.

Können Sie bitte bestätigen, ist das tatsächlich möglich und wenn ja, welche Syntax sollte ich verwenden? Ich bin auf Postgresql aber kann auch aws oder presto Alternativen verwenden, obwohl ich mir vorstellen würde, dass sie begrenzter wären.

Wenn ich das obige Beispiel ausprobiere, bekomme ich null Ergebnisse. Wenn ich versuche, die volle Liste als Text zu extrahieren und posix oder irgendwelche Array-Funktionen zu verwenden, bekomme ich eine Fehlermeldung: 'ungültiger regulärer Ausdruck: Quantifiziereroperand ungültig'

Jeder möglicher Rat würde sehr geschätzt werden. Vielen Dank!

Antwort

2

Versuchen Sie dies!

WHERE a.column1 LIKE '%' || b.column1 || '%' 

% benötigt ein einzelnes Anführungszeichen, da das Muster eine Zeichenfolge ist.
|| ist der Operator für die Verkettung.

Wenn ich eine schlechte Annahme gemacht habe, bitte Kommentar und ich werde meine Antwort neu fokussieren.

+0

Vielen Dank für die Antwort auf Rahul. Leider gibt dies auch null Ergebnisse zurück. Ich habe auch versucht, WHERE '%' || zu verwenden a.column1 || '%' ILIKE '%' || b.column1 || '%', aber auch Null-Ergebnisse. Ich gehe davon aus, dass es einen Weg geben muss, dies zu tun! – afropunk

+0

Verwenden Sie Kreuzprodukt von wl und ur? –

+1

Hey Rahul Ich habe vielleicht zu früh gesprochen, ich habe die Reihenfolge WHERE b.column1 LIKE '%' || umgekehrt a.column1 || "%" und ich bekomme ein paar Ergebnisse. Durchsuche sie jetzt, um zu sehen, ob sie gut sind. Wird bald zurück posten! – afropunk

Verwandte Themen