2017-10-12 2 views
0

J'ai une table sqlite avec sub_id, ils sont stockés sous forme de chaînes. Lorsque je commande avec cette colonne, je reçois mes données commandé comme ceci:Commander une colonne avec des entiers numériques lors de l'extraction de données en tant que chaînes utilisant la base de données sqlite dans swift?

1, 10, 13, 16, 2, 23, etc

Comment puis-je les commander numériquement?

Mon code:

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]) 
} 

Je ne peux pas utiliser le changement peut format base de données en raison de la compatibilité Android.

Répondre

0

ne peut pas tester ce au moment, mais essayez:

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

glanée de la question SO Compare strings as numbers in SQLite3, commentaire par @ Martin Ždila