Hodnoty můžete extrahovat podle klíče z hstore
sloupec se sloupcem ->
operátor
.
SELECT data->'Supplier' AS sup
FROM products
WHERE lower(data->'Supplier') LIKE '%tosh%';
Navíc, jako většina výrazů v PostgreSQL (kromě věcí jako random()
), můžete tuto hodnotu indexovat:
CREATE INDEX products_supplier_key ON products ((data->'Supplier'));
CREATE INDEX products_supplier_lowercase_key ON products ((lower(data->'Supplier')));
To by PostgreSQL umožnilo odpovědět na mnoho takových dotazů pomocí indexu namísto načítání každého řádku a skenování hstore
sloupec. Viz poznámky k Typy indexů
ohledně použití indexu s LIKE.