Задать вопрос
@pythonnovi4ok

Как сделать проверку на наличие определенного числа в базе данных (SQLite)?

Имею базу данных sqlite, в ней есть такие столбики: telegram_id, username, status
Как сделать чтобы в базе искалось все таблицы где в status указано 3.

Если = 3 тогда будет выдавать сообщение
print('Вы администратор')
Если != 3 тогда
print('Вы обычный пользователь')
  • Вопрос задан
  • 1458 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Вот набросал вам самый простой код, поиграйтесь с ним. Тут нет ничего сложного:
import sqlite3

conn = sqlite3.connect('users.db')
cursor = conn.cursor()

name = input('Введите имя пользователя: ')

cursor.execute('SELECT status FROM Users WHERE username = ?',(name,))

result = cursor.fetchone()[0]
if result == 3:
	print('Вы администратор')
else:
	print('Вы обычный пользователь')

Структура базы:
5f849558dd33d864306206.png

PS:
Как сделать чтобы в базе искалось все таблицы где в status указано 3.
у вас несколько таблиц? Зачем?
Ответ написан
shabelski89
@shabelski89
engineer
По хорошему нужно 2 таблицы и внешний ключ :
create table `rules` (`id` INT PRIMARY KEY, `rule` VARCHAR(50));
insert into  `rules` (`id`, `rule`) VALUES (1, 'user');
insert into  `rules` (`id`,`rule`) VALUES (2, 'moderator');
insert into  `rules` (`id`,`rule`) VALUES (3,'admin');
                                                           
create table `users` (`telegram_id` INT PRIMARY KEY, `username` VARCHAR(50), `status` INT, FOREIGN KEY (`status`)  REFERENCES `rules` (`id`));
insert into  `users` (`telegram_id`, `username`, `status`) VALUES (555, 'user555', '1');     
insert into  `users` (`telegram_id`, `username`, `status`) VALUES (666, 'user666', '2'); 
insert into  `users` (`telegram_id`, `username`, `status`) VALUES (777, 'user777', '3');
insert into  `users` (`telegram_id`, `username`, `status`) VALUES (888, 'user888', '3');


далее делаем запрос чтобы найти админов:
select u.username from users u 
left join rules r
ON u.status=r.id
where id=3;


результат на лицо.5f8498be9255b803207255.png
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы