PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Verifique uma tabela inteira para um único valor


Você pode usar um recurso especial do sistema de tipos PostgreSQL:
SELECT *
FROM   tbl t
WHERE  t::text LIKE '%999999%';

Existe um tipo composto do mesmo nome para cada tabela que você cria no PostgreSQL. E há um text representação para cada tipo no PostgreSQL (para valores de entrada/saída).

Portanto, você pode simplesmente converter a linha inteira em text e se a string '999999' estiver contida em qualquer coluna (seu text representação, para ser preciso) é garantido para mostrar na consulta acima.

Você não pode descartar falsos positivos completamente, porém, se os separadores e/ou decoradores usados ​​pelo Postgres para a representação da linha puderem fazer parte do termo de pesquisa. É apenas muito improvável. E positivamente não é o caso do seu termo de pesquisa '999999'.

Houve uma pergunta muito semelhante no codereview.SE recentemente. Adicionei mais algumas explicações na minha resposta .