大家好
最近有在用 django的ORM資料庫操作
但是有些情況
例如我需要在select上面寫SQL的算式
就需要使用直接插入查詢字串extra方式來達成
最常見就是判斷式
或是一些最大最小值之類
參考:
django查询中extra的应用
https://blog.csdn.net/weixin_42143550/article/details/88955477
所以這邊舉一個小例子給大家參考看看
#新增一個query物件 TestTableQ = TestTable.objects.all() #子查詢 intSql = ' SELECT id FROM XXX INNER JOIN TestTable2 AS tnt ' #針對select寫查詢條件 newName 是變數名稱,後面接的是判斷式(這判斷式如果要用ORM加上去比較麻煩,所以這時候就需要用extra) TestTableQ = TestTableQ.extra(select={'newName':" CASE WHEN leftE < rightE THEN leftE ELSE rightE END "}) #針對where插入子查詢 TestTableQ = TestTableQ.extra(where = [' id IN ( '+intSql+' ) '])
感謝大家
留言板
歡迎留下建議與分享!希望一起交流!感恩!