使用(从表中选择*)将数据插入选项卡

2024-09-30 22:27:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有底部MySql查询(sql1)。你知道吗

sq1 = 'select course_id, creator_id, max(course_num) + 1, recordid 
  ' from Courses where recordid in' \
  ' (' + ','.join(map(str, RecordMatch1)) + ') group by recordid'
cursor.execute(sql1)

顺便说一句,RecordMatch1是一个对象,它具有来自其他先前查询的匹配数据。你知道吗

我想看看这是否可行;(从sql1选择*)部分。你知道吗

sql2 = ' insert into Courses (course_id, creator_id, course_num, record_id) '\
   ' Values ( select * from sql1)'
cursor.execute(sql2)

或者我必须表达一切而不是使用(Select*)?你知道吗

什么是最佳实践?你知道吗


Tags: fromidexecutemysqlselectcursornumcreator
3条回答

可以这样做,但应该指定列以防架构更改。你知道吗

只需确认您正在尝试运行select查询并将其输出插入insert查询。如果是这样的话,这似乎是好事。你知道吗

是的,你可以,但你应该这样做

sql = "SELECT course_id, creator_id, course_num, record_id FROM Courses" 
all = cursor.fetchall()
for i in range(len(all))
    sql1 = "INSERT INTO Courses (course_id, creator_id, course_num, record_id) VALUES (%s, %s, %s, %s)"
    cursor.execute(sql1, (all[i]['Key'], all[i]['Key2'], all[i]['Key3'], all[i]['Key3']))

您可以随心所欲地更改select,记住返回一个dictionary,所以要注意键,添加print(all)以查看select的结果,并查看每列的键

相关问题 更多 >