如果表是变量(python),如何从 SQLite 表中选择

Posted

技术标签:

【中文标题】如果表是变量(python),如何从 SQLite 表中选择【英文标题】:How to select from SQLite table if table is variable (python) 【发布时间】:2020-11-03 09:20:38 【问题描述】:

我正在尝试从 SQLite 表中进行选择,但我想使用变量而不是指定表名。我正在编写一个类,该类根据在以前的 tkinter 顶层输入的关键字访问不同的表。我已将关键字带入课堂,但我不能使用 self.keyword 或通常的('SELECT blah blah FROM ?',(self.keyword,))。我在网上搜索并找不到任何东西。任何建议将不胜感激。

【问题讨论】:

我相信你必须使用纯字符串替换,即"select blah blah from %s" % name_of_table 你得到的错误是什么?见:***.com/questions/228912/… 您不能在表名和列名上使用占位符。 @acw1668:该建议不是为了使用占位符,而是为了使用字符串格式。 @Bryan 我的评论是关于在表名上使用占位符的 OP。 【参考方案1】:

Python 支持在字符串中替换变量的各种方法,

顺序很重要的替换

mycursor.execute("SELECT blah blah FROM ? WHERE name = ?",
             ['MYTABLE', 'salik'])
mycursor.execute("SELECT blah blah FROM  WHERE name = ".format("MYTABLE","salik"))

顺序无关的替换

mycursor.execute("SELECT blah blah FROM :table_name WHERE name = :name",
             name: 'salik', table_name: 'MYTABLE')
使用上述任何一种方法 我个人建议您使用 format 方法来学习格式化字符串

【讨论】:

.format 还允许您更改小数点后的数字

以上是关于如果表是变量(python),如何从 SQLite 表中选择的主要内容,如果未能解决你的问题,请参考以下文章

python sqlite3 如何模糊查询变量?

如何将 sqlite3 模块添加到 Python?

python sqlite3

使用SQLite

如何使用 python 从 sqlite 获取数据?

Python 之 Sqlite3数据库