sql >> Databáze >  >> RDS >> PostgreSQL

Zkontrolujte jednu hodnotu v celé tabulce

Můžete použít speciální funkci systému typu PostgreSQL:

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

Existuje složený typ se stejným názvem pro každou tabulku, kterou vytvoříte v PostgreSQL. A je tam text reprezentace pro každý typ v PostgreSQL (pro vstupní / výstupní hodnoty).

Proto můžete celý řádek přenést do text a pokud je řetězec '999999' obsažen v libovolném sloupci (jeho text reprezentace, abych byl přesný), je zaručeno, že se zobrazí ve výše uvedeném dotazu.

Nemůžete vyloučit falešné poplachy zcela, pokud však mohou být součástí hledaného výrazu oddělovače a/nebo dekorátory používané Postgresem pro reprezentaci řádků. Je to prostě velmi nepravděpodobné. A to samozřejmě neplatí pro váš hledaný výraz '999999'.

Nedávno byla na codereview.SE velmi podobná otázka. Do své odpovědi jsem přidal další vysvětlení .



  1. Pořadí provádění SQL dotazu

  2. Alternativa k operátoru in v mysql

  3. Instalace mysql-libs na server s MySQL-Server5.5

  4. Instalace mysql na leoparda:Nelze se připojit k místnímu serveru MySQL přes socket