Du kan extrahera värden med nyckel från en hstore
kolumnen med ->
operatör
.
SELECT data->'Supplier' AS sup
FROM products
WHERE lower(data->'Supplier') LIKE '%tosh%';
Dessutom, som de flesta uttryck i PostgreSQL (förutom saker som random()
), kan du indexera detta värde:
CREATE INDEX products_supplier_key ON products ((data->'Supplier'));
CREATE INDEX products_supplier_lowercase_key ON products ((lower(data->'Supplier')));
Detta skulle tillåta PostgreSQL att svara på många sådana frågor med hjälp av indexet istället för att hämta varje rad och skanna hstore
kolumn. Se anteckningarna om Indextyper
angående indexanvändning med LIKE.