【问题标题】:How to change a value in a specific row in sql?如何更改sql中特定行中的值?
【发布时间】:2021-09-29 05:37:44
【问题描述】:

我有一个表,其中包含“任务”和“用户名”的不同列。 我想更改特定用户名的“任务”的值,我正在尝试使用 UPDATE 但它删除了所有以前的数据: c.execute('UPDATE users SET tasks = "' + x + '" WHERE username = "' + username + '"') 像这样删除旧数据并将任务设置为“x”,但我想要将 x 添加到任务中。我该怎么做呢?

【问题讨论】:

  • 我不认为这个问题是由tkinter引起的。如果是这样,请删除tkinter标签

标签: python sql sqlite sql-update


【解决方案1】:

连接到tasks 而不是覆盖它。

c.execute('UPDATE users SET tasks = tasks || "," || ? WHERE username = ?', (x, username))

请注意,将逗号分隔的列表放在表格列中是糟糕的数据库设计。你应该有另一个表user_tasks,每个用户+任务组合都有一行。

【讨论】:

  • 哎呀,我想这可能是我的错,因为我没有提到我正在使用 sqlite3,但它说:sqlite3.OperationalError: no such function: CONCAT
  • 我确实看到它是 sqlite,但忘记了它没有 CONCAT。
  • 很抱歉再次打扰您,但我收到错误消息:sqlite3.OperationalError: no such column: x。这是有道理的,因为我的意思是 x 是一个变量。我在用 !顺便说一句,作为分隔符,而不是逗号。
  • 对不起,那应该是另一个占位符? 来获取x 参数的值。
猜你喜欢
  • 1970-01-01
  • 2017-06-24
  • 2011-01-04
  • 1970-01-01
  • 2012-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
相关资源
最近更新 更多