for n in res:
c.execute('INSERT INTO Zayavka(id) VALUES(?) ON CONFLICT(id) DO NOTHING', (n, ) )
res = [[40065], [40064]]
c.executemany('INSERT INTO Zayavka(id) VALUES(?) ON CONFLICT(id) DO NOTHING', res )
select * from users, orders, items, commands, cats
select * from users u join orders o on u.user_id = o.user_id
cur.execute("SELECT COUNT(*) FROM users WHERE {} == 1".format(mmml))
или
cur.execute(f"SELECT COUNT(*) FROM users WHERE {mmml} == 1")
...
for row in result:
singup = str(row[0])
return singup
...
for row in result:
return str(row[0])
return row[0]
(id_photo, h_num, h_value)
select * from photos where id_photo = ... and h_num = 1
или
select * from photos where h_num = 1 and h_value > 30
CREATE TABLE IF NOT EXISTS users(user_id INTEGER NOT NULL PRIMARY KEY,
photo_id INTEGER NOT NULL,
registration_date TEXT,
actual_name TEXT,
real_name TEXT,
old_names TEXT,
friends INT,
level INT,
country TEXT,
profile_summary TEXT,
src TEXT,
FOREIGN KEY (photo_id) REFERENCES photos(id))
CREATE TABLE IF NOT EXISTS photo_type(photo_type INTEGER PRIMARY KEY,
photo_type_name TEXT)
CREATE TABLE IF NOT EXISTS photos(id INTEGER PRIMARY KEY AUTOINCREMENT,
photo_type INTEGER,
h1 INT,
FOREIGN KEY (photo_type) REFERENCES photo_type(photo_type))
6.1000e+01
массив из 256 не целых чисел в базу(гистограмму картинки)
# считать все свои тексты в список
data = [row[0] for row in cur.execute("SELECT name FROM `test`")]
random.shuffle(data) # теперь данные в рандомном порядке, можно выбирать последовательно
# считать только уникальные номера этих текстов в список
numbers = [row[0] for row in cur.execute("SELECT number FROM `test`")]
random.shuffle(numbers) # теперь данные в рандомном порядке, можно выбирать последовательно
# при запросе пользователя берем следующий номер из нашего рандомного списка
number = ...
# и по нему уже достаем сам текст из базы
text = cur.execute("SELECT name FROM `test` where number = ?", (number, )).fetchone()[0]
((ряд1значение1, ряд1значение2, ряд1значение3... ), (ряд2значение1, ряд2значение2, ряд2значение3... ), ...)
result2 = '\n'.join(' ║ '.join(f'{val}' for val in row) for row in cur.execute(f"SELECT * FROM {arg}"))
def patronymic(message): #получаем отчества
...
cursor.execute("INSERT INTO Profile (user_id, name, surname, patronymic) VALUES (?, ?, ?, ?)", (user_id, name, surname, patronymic))
number = # на сколько нужно увеличить то число
cur.execute("UPDATE users SET number = number + ? WHERE user_id = ?", (number, user_id))
async def number(message: types.Message):
num = message.get_args()
cur.execute("SELECT * FROM users WHERE id = ?", (id, ))
all = cur.fetchone()
cur.execute("SELECT COUNT(*) FROM users WHERE id = ?", (id, ))
cnt = cur.fetchone()[0]
в cnt будет кол-во записей с этим пользователем, т.е. 1 если есть, 0 если нет. class SQLighter:
def __init__(self, database):
self.connection = sqlite3.connect(database, check_same_thread = False)
self.connection.row_factory = sqlite3.Row # этой строкой указываем, что результат получаем в виде словаря
self.cursor = self.connection.cursor()
self.cursor.execute("CREATE TABLE IF NOT EXISTS stats (user_id INT, user_name TEXT, survived INT, infected INT)")
...
# и можно сделать такую функцию, возвращающую всю информацию пользователя
def get_info(self, id):
with self.connection:
return self.cursor.execute("SELECT * FROM stats WHERE user_id=?", (id, )).fetchone()
sql_lighter = SQLighter("database.db")
sql_lighter.add_user(982543922, "Владимир", 1, 1)
# затем получаем весь словарь данных и можем использовать любые нужные поля из него
data = sql_lighter.get_info(982543922)
print(data)
print(data['user_name'])
print("Информация пользователя {}: имя: {}, survived: {}, infected: {}".format(data['user_id'], data['user_name'], data['survived'], data['infected']))
Но хотелось бы как-то отсортировать это по cash и уже получить rowid .
SELECT id, name, cash, row_number() over(order by cash desc) as rownum FROM users
cursor.execute("SELECT cash, rowid, rownum FROM (SELECT id, name, cash, row_number() over(order by cash desc) as rownum FROM users) WHERE id = ?", (ctx.author.id, )).fetchone()[2]