sql >> Base de Datos >  >> RDS >> PostgreSQL

Verifique una tabla completa para un solo valor

Puede utilizar una función especial del sistema de tipos de PostgreSQL:

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

Hay un tipo compuesto del mismo nombre para cada tabla que cree en PostgreSQL. Y hay un text representación para cada tipo en PostgreSQL (a valores de entrada/salida).

Por lo tanto, puede convertir toda la fila en text y si la cadena '999999' está contenida en alguna columna (su text representación, para ser precisos) se garantiza que se muestre en la consulta anterior.

No se pueden descartar falsos positivos completamente, sin embargo, si los separadores y/o decoradores utilizados por Postgres para la representación de filas pueden ser parte del término de búsqueda. Es simplemente muy improbable. Y definitivamente no es el caso de su término de búsqueda '999999'.

Hubo una pregunta muy similar en codereview.SE recientemente. Agregué una explicación más en mi respuesta allí .