PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Überprüfen Sie eine ganze Tabelle auf einen einzelnen Wert

Sie können eine spezielle Funktion des PostgreSQL-Typsystems verwenden:

SELECT *
FROM   tbl t
WHERE  t::text LIKE '%999999%';

Es gibt einen zusammengesetzten Typ gleichen Namens für jede Tabelle, die Sie in PostgreSQL erstellen. Und es gibt einen text Darstellung für jeden Typ in PostgreSQL (zur Eingabe / Ausgabe von Werten).

Daher können Sie einfach die gesamte Zeile in text umwandeln und wenn der String '999999' in irgendeiner Spalte enthalten ist (ihr text Repräsentation, um genau zu sein) wird garantiert in der obigen Abfrage angezeigt.

Sie können False Positives nicht ausschließen vollständig, wenn die von Postgres für die Zeilendarstellung verwendeten Separatoren und/oder Decorators Teil des Suchbegriffs sein können. Es ist einfach sehr unwahrscheinlich. Und ganz sicher nicht für Ihren Suchbegriff '999999'.

Es gab kürzlich eine sehr ähnliche Frage auf codereview.SE. Ich habe einige weitere Erklärungen in meiner Antwort dort hinzugefügt .