150_Kirill_150
@150_Kirill_150
Пытаюсь разрабатываю телеграм бота. Новичок в Pyth

Как удалить несколько строчек данных SQLite в Python?

И так, мне нужно удалить одну строчку данных в sqlite таблице, но как это сделать, не могу сообразить. И так в таблице имеются следующие данные5fe37300289fd121921226.png
Мне нужно удалить эту строку
5fe37335d3856502706409.png
В интернете везде пример удаления следующие
5fe3739b259ea286176847.png
Но это команда удалит все строчки, где присутствует Finance в столбце department_name. Но мне нужно сделать так:
id = 674759776
Если id_1 == с моим id
То удалить строчку данных где присутствует мой id. То есть следующую строчку
5fe3745bea9a5130009991.png
Как это можно сделать?
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
150_Kirill_150
@150_Kirill_150 Автор вопроса
Пытаюсь разрабатываю телеграм бота. Новичок в Pyth
Короче проблемку решил следующим образом:
import sqlite3

conn = sqlite3.connect("local.db", check_same_thread = False) # или :memory: чтобы сохранить в RAM
cursor = conn.cursor()

my_id = 74654758345

cursor.execute('SELECT id_2 FROM stol_game WHERE id_1 = ?', (my_id, ))
id_2_turtle = cursor.fetchone()
id_2 = int(id_2_turtle[0])

cursor.execute('SELECT brosokone2 FROM stol_game WHERE id_1 = ?', (my_id, ))
brosokone2turtle = cursor.fetchone()
brosokone2 = int(brosokone2turtle[0])
                    
cursor.execute('SELECT brosoktwo2 FROM stol_game WHERE id_1 = ?', (my_id, ))
brosoktwo2turtle = cursor.fetchone()
brosoktwo2 = int(brosoktwo2turtle[0])
                    
cursor.execute('SELECT vsumme2 FROM stol_game WHERE id_1 = ?', (my_id, ))
vsumme2turtle = cursor.fetchone()
vsumme2 = int(vsumme2turtle[0])
                    
cursor.execute('SELECT stavka2 FROM stol_game WHERE id_1 = ?', (my_id, ))
stavka2turtle = cursor.fetchone()
stavka2 = int(stavka2turtle[0])

cursor.execute('SELECT frend_id FROM stol_game WHERE id_1 = ?', (my_id, ))
frend_id2turtle = cursor.fetchone()
frend_id = int(frend_id2turtle[0])
cursor.execute('SELECT brosokone1 FROM stol_game WHERE id_1 = ?', (my_id, ))
brosokone1turtle = cursor.fetchone()
brosokone1 = int(brosokone1turtle[0])
                    
cursor.execute('SELECT brosoktwo1 FROM stol_game WHERE id_1 = ?', (my_id, ))
brosoktwo1turtle = cursor.fetchone()
brosoktwo1 = int(brosoktwo1turtle[0])
                    
cursor.execute('SELECT vsumme1 FROM stol_game WHERE id_1 = ?', (my_id, ))
vsumme1turtle = cursor.fetchone()
vsumme1 = int(vsumme1turtle[0])
                    
cursor.execute('SELECT stavka1 FROM stol_game WHERE id_1 = ?', (my_id, ))
stavka1turtle = cursor.fetchone()
stavka1 = int(stavka1turtle[0])

cursor.execute('SELECT win FROM stol_game WHERE id_1 = ?', (my_id, ))
win2turtle = cursor.fetchone()
win = int(win2turtle[0])

cursor.execute('DELETE FROM stol_game WHERE id_1 = ? AND frend_id = ? AND brosokone1 = ? AND brosoktwo1 = ? AND vsumme1 = ? AND stavka1 = ? AND id_2 = ? AND brosokone2 = ? AND brosoktwo2 = ? AND vsumme2 = ? AND stavka2 = ? AND win = ?', (my_id, frend_id, brosokone1, brosoktwo1, vsumme1, stavka1, id_2, brosokone2, brosoktwo2, vsumme2, stavka2, win, ))
conn.commit()
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@bacon
Имеет смысл почитать учебник по SQL, чтобы понять основы.
Ответ написан
@plyshk1n2k
Не пробовал добавить еще одно условие в запрос к бд?
У строк же разные id_1 и id_2
Или же можно использовать TOP, LIMIT, ROWNUM
Если ты уверен, что в бд на первой строке именно то что тебе нужно и тебе следует ее удалить, тогда смело используй то что я описал строчкой выше
Ответ написан
@PavelMos
Но это команда удалит все строчки, где присутствует Finance в столбце department_name.
Ну так в чём проблема-то ? нужно, чтобы присутствовало нужное число в нужном столбце
DELETE FROM departments
WHERE id_1=674759776
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы