sql >> Databasteknik >  >> RDS >> PostgreSQL

Kontrollera en hel tabell för ett enda värde

Du kan använda en speciell funktion i systemet av typen PostgreSQL:

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

Det finns en sammansatt typ med samma namn för varje tabell som du skapar i PostgreSQL. Och det finns en text representation för varje typ i PostgreSQL (för att mata in / mata ut värden).

Därför kan du bara casta hela raden till text och om strängen '999999' finns i någon kolumn (dess text representation, för att vara exakt) kommer den garanterat att visas i frågan ovan.

Du kan inte utesluta falska positiva helt, dock om separatorer och/eller dekoratorer som används av Postgres för radrepresentation kan vara en del av söktermen. Det är bara mycket osannolik. Och positivt inte fallet för din sökterm '999999'.

Det var en mycket liknande fråga på codereview.SE nyligen. Jag lade till någon mer förklaring i mitt svar där .



  1. Flera främmande nycklar?

  2. postgresql, kunde inte identifiera kolumn i postdatatypen

  3. Hur man ändrar det aktuella datumformatet i SQL Server (T-SQL)

  4. Anpassad ORDER BY för att ignorera "the"