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

Comment interroger des valeurs avec des caractères génériques dans PostgreSQL hstore

Vous pouvez extraire des valeurs par clé à partir d'un hstore colonne avec -> opérateur .

SELECT data->'Supplier' AS sup
FROM products
WHERE lower(data->'Supplier') LIKE '%tosh%';

De plus, comme la plupart des expressions dans PostgreSQL (à l'exception de choses comme random() ), vous pouvez indexer cette valeur :

CREATE INDEX products_supplier_key ON products ((data->'Supplier'));
CREATE INDEX products_supplier_lowercase_key ON products ((lower(data->'Supplier')));

Cela permettrait à PostgreSQL de répondre à de nombreuses requêtes de ce type en utilisant l'index au lieu de récupérer chaque ligne et d'analyser le hstore colonne. Voir les notes sur Types d'index concernant l'utilisation de l'index avec LIKE.