2016-05-25 23 views
6

her iki değer türleri boş (varsayılan olarak) ve tamsayı içeren bir null sütunuyla tablo değerleri:SQLAlchemy

maintenance = 1 
node_list = Node.query.filter(Node.maintenance != maintenance).all() 

Ben Null veya 0 değerleri içeren tüm hücreleri seçmek gerekir.

Teşekkürler!

cevap

8

'Boş' veya '0' değerlerini içeren tüm hücreleri seçmem gerekiyor.

Node.query.filter((Node.maintenance.is_(None)) | (Node.maintenance == 0)) 
(çünkü linterinden) == None kullanmaktan kaçınmak is_(None)

Veya kullanılması mantıklı OR

Node.query.filter((Node.maintenance == None) | (Node.maintenance == 0)) 

olarak | kullanılması

or_

Veya, SQL ve Python in operatör benzer bir şey kullandığınızda,' sorgulayabilir merak ediyorsanız in_

Kullanılması bu forma

from sqlalchemy import or_ 
Node.query.filter(or_(Node.maintenance == None, Node.maintenance == 0)) 

kullanma

Doğru SQLAlchemy de yapabilirsin, ama ne yazık ki it doesn't work for None/NULL values, ama göstermek için

olduğunu görebiliriz
Node.query.filter(Node.maintenance.in_([0, 1])) 

Node.query.filter((Node.maintenance == 0) | (Node.maintenance == 1)) 
+0

eşdeğerdir teşekkür ederiz! Yardımın için sağol! –

+1

Buraya havaya bir cevap aramak için geldim. '' '' In 'in_' +1'de kullanılabilir. –