Django 1 0資料庫分頁查詢時遇到的程式缺陷

2021-08-29 17:06:57 字數 834 閱讀 1263

使用 paginator 進行資料庫分頁查詢時,如果有 extra(where=sql) 限制查詢範圍,同時用 .values() 限定輸出字段,就會出現類似下面的錯誤:

no such column id:
檢查後台生成的sql, 可以看到下面這樣奇怪的sql語句:

select count(*) from

(select "t_menuitem"."id", "t_menuitem"."name", "t_menuitem"."descrip"

from "t_menuitem"

where ("t_menuitem"."name" like %% escape '\' or

"t_menuitem"."descrip" like %% escape '\' ) and

id not in (select item_id from t_grouppermissions

where group_id = 2)) a1 where id not in

(select item_id from t_grouppermissions where group_id = 2)

no such column: id

注意就是這一句造成了no such column 錯誤:

a1 where id not in

(select item_id from t_grouppermissions where group_id = 2)

同樣的程式在django 0.97svn執行一直正常,可以判定這是django 1.0出現的缺陷。

資料庫查詢分頁。

csdn上推薦的,轉過來的。呵呵!表中主鍵必須為標識列,id int identity 1,1 1.分頁方案一 利用not in和select top分頁 語句形式 select top 頁記錄數量 from 表名 where id not in select top 每頁行數 頁數 1 id fr...

資料庫分頁查詢

資料庫分頁查詢 在這裡主要講解一下mysql sqlserver2000 及sqlserver2005 和orcale三種資料庫實現分頁查詢的方法。可能會有人說這些網上都有,但我的主要目的是把這些知識通過我實際的應用總結歸納一下,以方便大家查詢使用。下面就分別給大家介紹 講解一下三種資料庫實現分頁查...

資料庫分頁查詢

1 mysql select from demo where 1 1 limit 2,3limit是用來分頁的,第乙個引數是行號,第二個引數是說有多少行 2 oracle 第一種select id,field name,from table name where id in select id fr...