0

У меня есть таблица в базе там id, name, age, как можно обратиться последнему добавленному в эту таблицу id Я использую sqlite

Tesla
  • 310
  • 1
  • 3
  • 11

3 Answers3

1

Чтобы получить всю строку с максимальным id:

select * from table_name order by id desc limit 1;

В Python:

con = sql.connect('data_per.db')
cur = con.cursor()
cur.execute("create table if not exists users(id integer primary key autoincrement, name varchar(100))")
cur.execute("insert into users(name) values ('john'), ('max')")
con.commit()

чтобы получить максимальный id:

cur.execute('SELECT MAX(id) FROM users') 
row = cur.fetchone()
max_i = row[0]
print(max_i)
# 2

чтобы получить всю строку с максимальным id:

cur.execute("""select * from users order by id desc limit 1""")
row = cur.fetchone()
print(row)
# (2, 'max')
MaxU - stand with Ukraine
  • 149,321
  • 12
  • 59
  • 132
  • Так он выведет первого добавленного а не последнего – Tesla Nov 15 '21 at 10:06
  • @Tesla, только что проверил у себя - выдает последний id. Может у вас только одна строка в таблице? – MaxU - stand with Ukraine Nov 15 '21 at 10:07
1

Получить максимальный id:

SELECT MAX(`id`) FROM table_name;
GrAnd
  • 13,501
  • con = sql.connect('data_per.db') cur = con.cursor() max_i = cur.execute('SELECT MAX(id) FROM users;') print(max_i) Выводит вот это <sqlite3.Cursor object at 0x000001A45248AB20> – Tesla Nov 15 '21 at 09:52
1

Если вы хотите получить последнюю добавленную запись, то следует написать такой запрос:

select id, name, age from table
where id = (select max(id) from table)
dtroyan
  • 405
  • 2
  • 7