Ich verwende den nativen Array-Typ von Postgres und versuche, die Datensätze zu finden, deren ID nicht in den Empfänger-IDs des Arrays enthalten ist.
Ich kann finden, wo sie IN sind:
SELECT COUNT(*) FROM messages WHERE (3 = ANY (recipient_ids))
Das funktioniert aber nicht:
SELECT COUNT(*) FROM messages WHERE (3 != ANY (recipient_ids))
SELECT COUNT(*) FROM messages WHERE (3 = NOT ANY (recipient_ids))
Was ist der richtige Weg, um auf diesen Zustand zu testen?
text[]
und int[]
Array:select not(array[1,2,3] @> array[3]);
null
Spalte in einem Array enthalten ist oder nicht, wird immer Nein gesagt. Ich habe ungefähr 20 Minuten gebraucht, um mehrere enthaltene Methoden zu debuggen, um zu dem Schluss zu kommen, dass man nicht überprüfen kann, ob null in einem Array enthalten ist
WHERE 3 NOT IN recipient_ids
?