我對此進行了各種研究,似乎無法找到答案。我希望我沒有重複這個(因爲這是我的第一個問題)。Peewee在空字段上選擇的語法
我想寫一個通常會去的Peewee選擇查詢... WHERE foo = NULL;在SQL世界。
MySQL的是這樣的:
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| user | varchar(30) | NO | | NULL | |
| peer | varchar(30) | NO | | NULL | |
| deleted | date | YES | | NULL | |
| confirmed | date | YES | | NULL | |
+-----------+-------------+------+-----+---------+----------------+
我的選擇查詢看起來是這樣的:
Peers.select().where(Peers.user == 'foo' and Peers.deleted is None)
但它不工作!我試過Peers.deleted == ""
和Peers.deleted == "NULL"
。 MySQL語法應該以WHERE deleted is NULL;
結尾,但Peewee似乎沒有這樣做。
任何人都可以幫忙嗎?我從文檔中錯過了什麼?
從Foo Bar更新用戶評論: and not Peers.deleted
沒有工作,但它讓我知道更多的信息。看起來peewee希望將where
條款鏈接在一起。因此,而不是
Peers.select().where(Peers.user == 'foo' and Peers.deleted is None)
它應該是:
Peers.select().where(Peers.user == 'foo').where(Peers.deleted is None)
可悲的是,這仍然沒有得到正確的語法中刪除了空行選擇。
也許'而不是Peers.deleted' –