我已经和Sqlite.Swift合作了很长一段时间而且我被卡住了。
我正在尝试从“是或否”列中仅包含Int
值“1”的行数.count
中获取String
。
我一直在使用以下功能随机选择一行(不重复)。我认为这只是一个很好的开始,只为所描述的行定义.count
,但我绝对不知道这是否可行。
这就是我的“行随机发生器”的工作原理:
func randomNumber() -> Int {
var randomNumber = Int(arc4random_uniform(UInt32(try! database.scalar(table.select(ItemId.distinct.count)))))
while pickedNumber == randomNumber {
randomNumber = Int(arc4random_uniform(UInt32(try! database.scalar(table.select(ItemId.distinct.count)))))
}
pickedNumber = randomNumber
return randomNumber
}
let randomRow = randomNumber()
谢谢!
答案 0 :(得分:1)
回答我自己的问题:
这就完成了这项工作:
let count = try! database.scalar(tableName.where(expression == "1").count)
编辑:
您可以在此处查看!
。我这样做是因为我确定有一个表,其中有一个该名称的列,其中单元格的String
值为1.如果您想要更安全的方式使用do
/ try
/ catch
机制。