2016-12-15 5 views
1

Ich muss zählen und erhalten auch die Ausgabe aller Zeilen in einer Tabelle mit einem bestimmten Wort in einer bestimmten Spalte. So etwas wieZählen Sie alle Zeilen mit [Word] in [Spalte] in postgresql

ID Name Fave  
678 Adam cannot bear this 
355 Baloo bear is a bear 
245 Cheeta runs fast 

Damit ich eine Ausgabe von ‚2‘ bekommen (und nicht ‚3‘) auf die Anzahl der Zeilen zu zählen, das Wort ‚Bär‘ in der Spalte ‚Fave‘ enthalten, und ein Ausgang die ersten beiden Zeilen für die tabellarische Ausgabe/Zeilen auswählen.

Ich habe

versucht
SELECT * WHERE regexp_matches(Fave, 'bear') FROM table_name 

aber ich bin ein Syntaxfehler immer in der Nähe von FROM so bin ich wo ist, wo die Probleme bei ist. Irgendwelche Hinweise/Hilfe, bitte?

Antwort

1

Suchen Sie:

SELECT * FROM table_name WHERE Fave like '%bear%' 
1

Die FROM geht vor dem WHERE:

SELECT * 
FROM table_name 
WHERE regexp_matches(Fave, 'bear') ; 

Sie auch LIKE, natürlich verwenden können, aber das Problem ist, die Reihenfolge der Klauseln in der Abfrage.

0
select * from table_name where Fave ~* '\mbear\M'; 

~* - Groß- und Kleinschreibung regexp Streichhölzer
'\m...\M' - einziges Wort, so wird 'taddy bear' und taddybear passend ist es nicht.

Verwandte Themen