Bạn có thể trích xuất các giá trị bằng khóa từ hstore
có cột ->
nhà điều hành
.
SELECT data->'Supplier' AS sup
FROM products
WHERE lower(data->'Supplier') LIKE '%tosh%';
Ngoài ra, giống như hầu hết các biểu thức trong PostgreSQL (ngoại trừ những thứ như random()
), bạn có thể lập chỉ mục giá trị này:
CREATE INDEX products_supplier_key ON products ((data->'Supplier'));
CREATE INDEX products_supplier_lowercase_key ON products ((lower(data->'Supplier')));
Điều này sẽ cho phép PostgreSQL trả lời nhiều truy vấn như vậy bằng cách sử dụng chỉ mục thay vì tìm nạp từng hàng và quét hstore
cột. Xem các ghi chú về Loại chỉ mục
về việc sử dụng chỉ mục với LIKE.