Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

passing array as parameter in sqlite Swift

Tags:

sqlite

swift

I implemented Sqlite in my project by adding #import <sqlite3.h> in my header.h file and libsqlite3.dylib.

How can I pass an array as parameter to my query, here is what I thought:

var arrayId = [1,2] // array with interested Id 
var query:NSString = "Select id from Product where id IN \(arrayId)" // I want to select Products with id that are in the array

Edit: Does it change if arrayId is NSArray ? Because I also need arrayId as NSArray.

then I proceed with open sqlite database, prepare query and so on.

Thank you in advance.

like image 824
Chongzl Avatar asked Nov 15 '25 09:11

Chongzl


2 Answers

You can easily combine the array into a string with join function.

var arrayId = [1,2] // array with interested Id
var inExpression = ",".join(map(arrayId) { "\($0)"})
// inExpression = "1,2"
var query = "Select id from Product where id IN (\(inExpression))"
like image 171
rakeshbs Avatar answered Nov 18 '25 11:11

rakeshbs


Update for Swift3:

var arrayId = [1,2] // array with interested Id
var inExpression = arrayId.flatMap{ String($0) }.joined(separator: ",")
// inExpression = "1,2"
var query = "SELECT id FROM Product WHERE id IN (\(inExpression))"
like image 30
ArgaPK Avatar answered Nov 18 '25 11:11

ArgaPK