在表格中的大量行中,我想选择一个不是最近使用的特定行的成员的行。该集合作为ID列表进行维护。我目前的代码如下:
used = [123,234,345,456,567]
cur.execute("select id from tracks order by id=any(%s), random()", [used])
(Python + psycopg2;%s在发送给Postgres后转换为ARRAY [...]。)
PG文档警告我,数组不是集合,这表明" = any"检查是线性搜索。是否有更整洁和/或更有效的表达方式?