【问题标题】:Python mysql query returns no output because of single quotes由于单引号,Python mysql查询不返回输出
【发布时间】:2021-06-02 12:49:48
【问题描述】:

编辑: 我发现用于插入数据的脚本正在删除第一个数字的零。仍然不知道为什么会发生这种情况,但我的问题现在已经解决了。

我正在尝试通过 mysql-connector 向我的数据库发送查询,但我不断收到错误消息。 我无法在没有单引号 (') 的情况下执行,因为它返回语法错误或 mysql 错误。我似乎必须使用元组,但这带来了单引号的缺点。

mycursor.execute("CREATE TABLE IF NOT EXISTS rki (
    ObjectId INT(255),
    IdBundesland INT(255),
    Bundesland VARCHAR(255),
    Landkreis VARCHAR(255),
    Altersgruppe VARCHAR(255),
    Geschlecht VARCHAR(255),
    AnzahlFall INT(255),
    AnzahlTodesfall INT(255),
    Meldedatum VARCHAR(255),
    IdLandkreis VARCHAR(255),
    Datenstand VARCHAR(255),
    NeuerFall INT(255),
    NeuerTodesfall INT(255),
    Refdatum VARCHAR(255),
    NeuGenesen INT(255),
    AnzahlGenesen INT(255),
    IstErkrankungsbeginn INT(255),
    Altersgruppe2 VARCHAR(255)
)")
lk = "05366"
mycursor = mydb.cursor()
query = ('SELECT Landkreis FROM rki WHERE IdLandkreis = %s')
mycursor.execute(query, (lk,))
print(mycursor.statement)
kreisname = mycursor.fetchone()[0]

正如您在图片中看到的那样,使用 '' 执行不起作用,而没有执行的查询就像一个魅力。 有没有办法在python中做到这一点?

【问题讨论】:

  • 请同时显示CREATE TABLE,因为它工作得很好。 mysql 转换它。见dbfiddle.uk/…
  • 还是没问题dbfiddle.uk/…
  • @nbk 还有什么可能的原因?我正在重新生成数据库...
  • @nbk 好的,我发现了错误所在。创建数据库时,前面的零会丢失,但我不知道为什么,因为我使用了 varchar
  • 我在 ypthon 3.92 上对此进行了测试,您测试输入或自动填充没有问题

标签: python mysql


【解决方案1】:
query = """SELECT Landkreis FROM rki WHERE IdLandkreis = '{}'""".format(lk)

然后将该查询传递给您的执行。您无需担心还要传递参数,因为它已经被处理了。

【讨论】:

  • 他不想要值周围的引号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多