所以我有乙個從網頁傳遞的dict。我想基於dict動態構建查詢。我知道我可以做:
session.query(myclass).filter_by(**web_dict)
但是,僅當值完全匹配時才起作用。我需要做「像」過濾。我最好的嘗試使用__dict__屬性:
for k,v in web_dict.items():
q = session.query(myclass).filter(myclass.__dict__[k].like('%%%s%%' % v))
不知道如何從那裡構建查詢。任何幫助都是極好的
首先要做的不同之處是訪問屬性使用getattr,而不是__dict__; getattr將始終做正確的事情,即使(對於更複雜的模型而言),對映屬性不是列屬性。
另乙個缺失的部分是您可以多次指定filter(),只需用該方法呼叫的結果替換舊的查詢物件。所以基本上
q = session.query(myclass)
for attr, value in web_dict.items():
q = q.filter(getattr(myclass, attr).like("%%%s%%" % value))
MyBatis動態sql查詢
什麼是動態sql mybatis核心 對sql語句進行靈活操作,通過表示式進行判斷,對sql進行靈活拼接 組裝。需求public class userpo if test userpo.id null and id if if where select id findusercount parame...
SQL動態表查詢
在程式設計過程中,經常會遇到需要根據使用者的選擇進行查詢的情況,這時,使用者不同的選擇可能需要查詢不同的表名,而且這個表名可能還不宜事先在程式中定死,需要能動態的隨機選擇。當然還包括表名和使用者的某些資訊相關,可能不同的使用者需要進入不同的表,甚至表名的一部分就是使用者名稱的一部分,等等。對於這些情...
sql動態列查詢
最近開發是遇到sql查詢時,以查詢結果作為列名,也就是動態列查詢,案列如下 declare sql varchar max set sql select fname 銷售經理,fnumber as 客戶代號 sum case when 月份 01 then bordlocal else 0 end ...