带有 TINYINT 变量的更新语句在 mySQL 中引发错误 [关闭]

Posted

技术标签:

【中文标题】带有 TINYINT 变量的更新语句在 mySQL 中引发错误 [关闭]【英文标题】:Update statement with TINYINT variables raises error in mySQL [closed] 【发布时间】:2016-03-31 04:03:35 【问题描述】:

我尝试让一个简单的更新查询在 mysql 中工作,但我找不到答案。

我尝试做的,因为“农林业”是一个 tinyint 变量:

UPDATE Projects
SET agroforestry = FALSE,
WHERE project_id=2;

以下查询在同一数据集上完美运行:

UPDATE Projects
SET contact_person_mail='vincent@lao.be',
    geographical_scope='national',
    country='Belgium',
    budget=4500000,
    currency='EUR'
WHERE project_id=2;

...但是当我尝试更新 tinyint (boolean) 变量时出现语法错误。我已经尝试了所有这些:

agroforestry = FALSE
agroforestry = False
agroforestry = false
agroforestry = 'FALSE'
agroforestry = 'False'
agroforestry = 'false'
agroforestry = 0
agroforestry = 1
agroforestry = TRUE
...

没有任何作用!我做错了什么?

【问题讨论】:

去掉多余的逗号。投票结束是一个错字。 【参考方案1】:

在你的例子中,你有

UPDATE Projects
SET agroforestry = FALSE,
WHERE project_id=2;

在 FALSE 之后去掉逗号。它不属于那里。 SET 子句中的逗号仅存在于分隔列中。要修改的最后一列(在本例中为唯一一列)后面不能有逗号。

【讨论】:

哈哈,谢谢。希望这是唯一的问题,它肯定是我能看到的唯一问题。猜猜我们会看到,如果提问者接受答案。 :)

以上是关于带有 TINYINT 变量的更新语句在 mySQL 中引发错误 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

MySQL TinyInt 值不会更新

如何在python中的mysql中使用带有变量的select语句

MySQL建表语句的一些特殊字段

MySQL建表插入语句等

如何将带有子查询的 MySQL select 语句转换为同一张表的更新语句?

使用带有临时变量的 MySQL CASE 语句,CASE 结果不正确?