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

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

【问题讨论】:

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

标签: python sqlite variables tkinter


【解决方案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 还允许您更改小数点后的数字
猜你喜欢
  • 2013-01-22
  • 1970-01-01
  • 2017-05-03
  • 2013-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-19
  • 1970-01-01
相关资源
最近更新 更多