U kunt waarden per sleutel extraheren uit een hstore
kolom met de ->
operator
.
SELECT data->'Supplier' AS sup
FROM products
WHERE lower(data->'Supplier') LIKE '%tosh%';
Bovendien, zoals de meeste expressies in PostgreSQL (behalve zaken als random()
), kunt u deze waarde indexeren:
CREATE INDEX products_supplier_key ON products ((data->'Supplier'));
CREATE INDEX products_supplier_lowercase_key ON products ((lower(data->'Supplier')));
Hierdoor zou PostgreSQL veel van dergelijke vragen kunnen beantwoorden met behulp van de index in plaats van elke rij op te halen en de hstore
te scannen. kolom. Zie de opmerkingen over Indextypen
over indexgebruik met LIKE.