我有一个表格,其中包含有关电子邮件的一些信息以及这些电子邮件的唯一ID。我想从这张表中分离出一些随机的电子邮件:
CREATE VIEW trainview AS SELECT id FROM mails ORDER BY random() LIMIT 1,400;
现在我想拆掉另一些不在“trainview”视图中的随机邮件:
CREATE VIEW helper AS SELECT id FROM mails EXCEPT SELECT id FROM trainview;`
CREATE VIEW testview AS SELECT id FROM helper ORDER BY random() LIMIT 1,200;
据我了解,testview应该只包含不在trainview中的ID,但是:
sqlite> SELECT count(testview.id) FROM trainview, testview WHERE testview.id=trainview.id;
18
这怎么可能?
答案 0 :(得分:0)
解决方案是,VIEWS是动态的,因此每次使用时都会计算......由于使用了random(),每次都会导致视图中出现不同的ID。