ste*_*nci 14 python sqlite peewee
文档显示了如何使用IN运算符,但我找不到如何使用NOT IN运算符.
如果我把一个not <<我得到一个语法错误.
如果我放了not <FieldName> <<一个WHERE False而不是一个子查询WHERE (<FieldName> NOT IN (SELECT ....
这是带有文档示例的输出.第一个是正确的,第二个和第三个是错误的.
>>> Tweet.select().where(Tweet.user << a_users).sql()
('SELECT t1."id", t1."user_id", t1."message", t1."created_date", t1."is_published" FROM "tweet" AS t1 WHERE (t1."user_id" IN (SELECT t2."id" FROM "user" AS t2 WHERE (Lower(Substr(t2."username", ?, ?)) = ?)))', [1, 1, 'a'])
>>> Tweet.select().where(not Tweet.user << a_users).sql()
('SELECT t1."id", t1."user_id", t1."message", t1."created_date", t1."is_published" FROM "tweet" AS t1 WHERE ?', [False])
>>> Tweet.select().where(Tweet.user not << a_users).sql()
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
col*_*fer 24
简单:
Tweet.select().where(Tweet.user.not_in(a_users))
Run Code Online (Sandbox Code Playgroud)
对于稍微不同的语义(NOT(x in y))而不是(x NOT IN y):
Tweet.select().where(~(Tweet.user << a_users))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3939 次 |
| 最近记录: |