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

Postgres SQL zum Abfragen von Array-Text [] in einem bestimmten Element

Die Unterstützung von Arrays durch PostgreSQL ist nicht besonders gut. Sie können unnest ein 1-dimensionales Array einfach genug, aber ein n-dimensionales Array wird vollständig abgeflacht und nicht nur die erste Dimension. Trotzdem können Sie diesen Ansatz verwenden, um die gewünschte Menge von Datensätzen zu finden, aber es ist ziemlich hässlich:

SELECT test.*, pg_column_size(test.data) AS column_size
FROM test
JOIN (SELECT id, unnest(data) AS strings FROM test) AS id_strings USING (id)
WHERE id_strings.strings = 'Wazaa';

Alternativ schreiben Sie diese Funktion um ein zweidimensionales Array in Datensätze von eindimensionalen Arrays zu reduzieren, und dann können Sie im Grunde alle SQL-Abfragen in Ihrer Frage verwenden.