Możesz wyodrębnić wartości według klucza z hstore
kolumna z ->
operator
.
SELECT data->'Supplier' AS sup
FROM products
WHERE lower(data->'Supplier') LIKE '%tosh%';
Dodatkowo, jak większość wyrażeń w PostgreSQL (z wyjątkiem takich rzeczy jak random()
), możesz zindeksować tę wartość:
CREATE INDEX products_supplier_key ON products ((data->'Supplier'));
CREATE INDEX products_supplier_lowercase_key ON products ((lower(data->'Supplier')));
Pozwoliłoby to PostgreSQL na odpowiadanie na wiele takich zapytań przy użyciu indeksu zamiast pobierania każdego wiersza i skanowania hstore
kolumna. Zobacz uwagi na temat Typów indeksów
dotyczące użycia indeksu z LIKE.