PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Vérifier une table entière pour une seule valeur

Vous pouvez utiliser une fonctionnalité spéciale du système de type PostgreSQL :

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

Il existe un type composite du même nom pour chaque table que vous créez dans PostgreSQL. Et il y a un text représentation pour chaque type dans PostgreSQL (pour les valeurs d'entrée/sortie).

Par conséquent, vous pouvez simplement convertir la ligne entière en text et si la chaîne '999999' est contenue dans n'importe quelle colonne (son text représentation, pour être précis), il est garanti de s'afficher dans la requête ci-dessus.

Vous ne pouvez pas exclure les faux positifs complètement, cependant, si les séparateurs et/ou les décorateurs utilisés par Postgres pour la représentation des lignes peuvent faire partie du terme de recherche. C'est juste très peu probable. Et positivement pas le cas pour votre terme de recherche '999999'.

Il y avait une question très similaire sur codereview.SE récemment. J'ai ajouté quelques explications supplémentaires dans ma réponse .