使用 TINYINT 变量的更新语句在 mySQL 中引发错误
Update statement with TINYINT variables raises error in mySQL
我试图让一个简单的更新查询在 mySQL 中工作,但我找不到答案。
我尝试做的,因为 "agroforestry" 是一个 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(布尔)变量时出现语法错误。这些我都试过了 :
agroforestry = FALSE
agroforestry = False
agroforestry = false
agroforestry = 'FALSE'
agroforestry = 'False'
agroforestry = 'false'
agroforestry = 0
agroforestry = 1
agroforestry = TRUE
...
没有任何效果!我做错了什么?
在你的例子中,你有
UPDATE Projects
SET agroforestry = FALSE,
WHERE project_id=2;
去掉FALSE后面的逗号。它不属于那里。
SET
子句中的逗号仅存在于分隔列中。要修改的最后一列(在本例中为唯一一列)后面不能跟逗号。
我试图让一个简单的更新查询在 mySQL 中工作,但我找不到答案。
我尝试做的,因为 "agroforestry" 是一个 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(布尔)变量时出现语法错误。这些我都试过了 :
agroforestry = FALSE
agroforestry = False
agroforestry = false
agroforestry = 'FALSE'
agroforestry = 'False'
agroforestry = 'false'
agroforestry = 0
agroforestry = 1
agroforestry = TRUE
...
没有任何效果!我做错了什么?
在你的例子中,你有
UPDATE Projects
SET agroforestry = FALSE,
WHERE project_id=2;
去掉FALSE后面的逗号。它不属于那里。
SET
子句中的逗号仅存在于分隔列中。要修改的最后一列(在本例中为唯一一列)后面不能跟逗号。