使用swift中的sqlite数据库将数据作为字符串检索时,使用整数数字对列进行排序?

时间:2017-10-12 18:25:29

标签: ios swift sqlite sqlite.swift

我有一个带有sub_id的sqlite表,它们存储为字符串。当我订购这个专栏时,我得到的数据如下:

1,10,13,16,2,23等

我如何以数字方式订购?

我的代码:

var id = Expression<Int>("id")
let m_id = Expression<String>("m_id")

let chapters = try self.database.prepare(self.chaptersTable.order(self.m_id))

for chapter in chapters {
    print("chapter Id: \(chapter[self.m_id])")
    idsChapters.append(chapter[self.id])
    mIdChapters.append(chapter[self.m_id])
}

由于Android兼容性,我无法使用更改数据库格式。

1 个答案:

答案 0 :(得分:0)

目前无法测试,但请尝试:

let chapters = try self.database.prepare(self.chaptersTable.order(CAST(self.m_id AS INTEGER)))

从问题Compare strings as numbers in SQLite3收集,@MartinŽdila发表评论