sql動態查詢

2021-09-23 20:43:51 字數 645 閱讀 8702

所以我有乙個從網頁傳遞的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 ...