SQLite - Удалить строку, содержащую строку - PullRequest
0 голосов
/ 07 октября 2018

Я использую эту библиотеку SQLite и хочу удалить каждую строку в таблице, которая содержит один и тот же адрес электронной почты.Итак, скажем, что 100 пользователей зарегистрированы по электронной почте: test@test.com, и я хочу удалить их всех.Согласно документации мы можем сделать это:

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

Но идентификаторы у каждого пользователя разные.Так что можно сделать что-то вроде: // 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 голосов
/ 08 октября 2018

Попробуйте это:

let alice = users.filter([emails[indexPath.row]].contains(self.email))
                    let deleteUser = user.delete()
                    do {
                        try self.database.run(deleteUser)
                    } catch {
                        print(error)
                    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...