SQLite-删除包含字符串的行

时间:2018-10-07 20:44:02

标签: swift sqlite

我使用此SQLite库,并希望删除表中包含相同电子邮件地址的每一行。假设有100位用户注册了以下电子邮件:test@test.com,我想删除所有用户。根据文档,我们可以执行以下操作:

let alice = users.filter(id == 1)
try db.run(alice.delete())
// DELETE FROM "users" WHERE ("id" = 1)

但是每个用户的ID都不相同。因此可以执行以下操作:// DELETE FROM "users" WHERE ("email" = test@test.com)

表中的电子邮件列是一个字符串。像这样:let email = Expression<String>("email")

编辑:

我尝试了此操作,但是不知何故,它删除了我的所有行,不仅删除了包含电子邮件地址的行:

let alice = users.select(self.email == emails[indexPath.row])
                let deleteUser = user.delete()
                do {
                    try self.database.run(deleteUser)
                } catch {
                    print(error)
                }

1 个答案:

答案 0 :(得分:0)

尝试一下:

let alice = users.filter([emails[indexPath.row]].contains(self.email))
                    let deleteUser = user.delete()
                    do {
                        try self.database.run(deleteUser)
                    } catch {
                        print(error)
                    }