【问题标题】:Database queries with SELECT xxx FROM database WHERE Relay = "value from a string"SELECT xxx FROM database WHERE Relay = "value from a string" 的数据库查询
【发布时间】:2022-01-16 03:58:57
【问题描述】:

我想知道是否可以使用以下查询从数据库中获取数据:SELECT Name FROM fraleon WHERE Relay = "value from a string"? 当我尝试在查询中输入一个字符串时,它会显示该列不存在的消息。

我刚开始编程,所以希望我的问题不是愚蠢的 ;-) 我正在尝试制作一个应用程序,其中我有一个 QtableWidget 和一个 QScrollbar,其中滚动条的值 (1 - 100) 是用于切换到下一个继电器。

con = sqlite3.connect("C:\Leonclient\LocalDB\LeonDBlite.db")cur = con.cursor()
value = 5
       
for row in cur.execute('SELECT Name FROM fraleon where Relay = value'):
    print(row)

Traceback(最近一次调用最后一次):

  File "C:\Users\xxx\AppData\Local\Temp/ipykernel_10292/3072186007.py", line 1, in <module>
    for row in cur.execute('SELECT Name FROM fraleon where Relay = (Value)'):

OperationalError: no such column: Value

【问题讨论】:

    标签: python sqlite select


    【解决方案1】:

    您可能需要将查询字符串与变量值连接起来,否则它将被视为字面上的“值”

    for row in cur.execute('SELECT Name FROM fraleon where Relay = ' + str(value)):
    

    【讨论】:

    • 谢谢 :) 到目前为止解决了我的问题。
    【解决方案2】:

    您可以尝试编写查询 - SELECT Name FROM fraleon WHERE Relay like '%somevalue%'

    这样您将指定中继列值的子字符串

    【讨论】:

    • 感谢您的贡献。我发现我应该提出不同的要求,因为它部分解决了我的问题,就像 Jayvee 建议我做的那样。这是我在查询中输入字符串的问题的解决方案,但不是漏洞问题:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    • 2010-11-03
    • 1970-01-01
    相关资源
    最近更新 更多