PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So fragen Sie Werte mit Platzhaltern in PostgreSQL hstore ab

Sie können Werte nach Schlüssel aus einem hstore extrahieren Spalte mit dem -> Betreiber .

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

Darüber hinaus wie die meisten Ausdrücke in PostgreSQL (mit Ausnahme von Dingen wie random() ), können Sie diesen Wert indizieren:

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

Dies würde es PostgreSQL ermöglichen, viele solcher Abfragen mithilfe des Index zu beantworten, anstatt jede Zeile abzurufen und den hstore zu scannen Säule. Siehe die Hinweise zu Indextypen zur Indexnutzung mit LIKE.