wcdb中使用rowid做查詢條件

2022-07-18 00:39:19 字數 998 閱讀 4736

近期有個需求是需要通過rowid的方式降序查詢所有的結果,具體的sql語句是這樣的

select * from tbl_mail_recent_list order by rowid desc
rowid作為sqlite裡面相對特殊的屬性,是可以直接使用的,但是對於wcdb的winq語法那就麻煩了,於是在wcdb的github的demo翻個遍沒找到相應的用例,只好自己想思路了:

第乙個問題簡單,wcdb是開源的,自己搜尋一下字段發現wcdb是提供相關屬性的,

class column : public describable ;
有了這個屬性如何使用呢,第二個問題就是要看下oder是怎麼封裝到winq裡面的,查詢條件裡面攜帶oderdy的方法裡面需要傳入乙個wctorderbylist物件,抽絲剝繭看到這個list需要傳入什麼物件

typedef wcdb::orderlist wctorderbylist;

typedef std::listorderlist;

可以看到傳入的物件就是oder物件了,那就順勢看下oder物件的定義,發現兩個建構函式,第二個建構函式簡單,只需要兩個引數,第乙個就是statement,第二個就是orderterm列舉:,離成功只差一步了,哈哈~

class order : public describable ;
最後編寫出來的結果是:

wctorderby wctorder = wcdb::order(wctexpr(wcdb::column::rowid), wcdb::orderterm::desc);

wctcolumnsxrows *resultrows = [database getrowsonresults: fromtable:ktbl_recentlist where:expr orderby: limit:limit];

enjoy!

使用ROWID查詢和刪除重複行

sql create table lunar 2c1 char 4 3c2 varchar2 20 4 5 表已建立。sql insert into lunar values 1111 1111 已建立1 行。sql insert into lunar values 1112 1111 已建立1 行...

使用ROWID查詢和刪除重複行

sql create table lunar 2c1 char 4 3c2 varchar2 20 4 5 表已建立。sql insert into lunar values 1111 1111 已建立1 行。sql insert into lunar values 1112 1111 已建立1 行...

查詢中使用函式

常用的四類函式 字串函式,日期函式,數學函式,系統函式 1 字串函式 charindex 尋找乙個指定的字串在另乙個字串中的起始位置 select charindex name my name is tom 1 返回 4 備註 1表示開始查詢位置,可省略 len 返回傳遞的字串長度 select l...