PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come eseguire query sui valori con caratteri jolly in PostgreSQL hstore

Puoi estrarre valori per chiave da un hstore colonna con -> operatore .

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

Inoltre, come la maggior parte delle espressioni in PostgreSQL (tranne cose come random() ), puoi indicizzare questo valore:

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

Ciò consentirebbe a PostgreSQL di rispondere a molte di queste query utilizzando l'indice invece di recuperare ogni riga e scansionare hstore colonna. Consulta le note su Tipi di indice per quanto riguarda l'utilizzo dell'indice con LIKE.