UPDATE `table` SET `repeat_id` = NULL WHERE (`repeat_id` == 0 AND `entry_type` == 0)
我有点紧张,只是尝试一下, repeat_id为NULL(将entry_type留为0)...在两个值都为0的情况下将值设置为NULL
我在这里犯了什么严重的错误吗?代码实际上会这样做吗?谈到SQL时,我很新奇。
UPDATE `table` SET `repeat_id` = NULL WHERE (`repeat_id` == 0 AND `entry_type` == 0)
我有点紧张,只是尝试一下, repeat_id为NULL(将entry_type留为0)...在两个值都为0的情况下将值设置为NULL
我在这里犯了什么严重的错误吗?代码实际上会这样做吗?谈到SQL时,我很新奇。
除了使用引号的,你必须使用反引号,而不是==
你必须只使用一个=
UPDATE `table`
SET
`repeat_id` = NULL
WHERE
`repeat_id` = 0 AND `entry_type` = 0
无论如何,它总是一个好主意,不尝试查询生产数据库 - 试运行它首先在一个发展表格上,或者在原始表格的副本上。最终,你可能需要将更新限制在几个记录:
UPDATE `table`
SET
`repeat_id` = NULL
WHERE
id in (1,2,3,4)
and `repeat_id` = 0 AND `entry_type` = 0
这将只记录1,2,3,4运行查询(如果你有一个ID列)。
到目前为止不错,但我会反编号的id列,以及你在其他地方做。 – AMartinNo1
您只需要更正语法。
UPDATE `table` SET repeat_id = NULL
WHERE repeat_id = 0 AND entry_type = 0
注意:single-quote
s为固定值。此外,平等检查只需要=
。
另外两个答案解决您的语法错误。本文介绍了一种对更新进行谨慎的方法。从具有与更新查询相同的where子句的选择查询开始:
select *
from table
where repeat_id = 0
and entry_type = 0;
查看输出。找到可以让你更新一条记录的东西。
update table
set repeat_id = null
where repeat_id = 0
and entry_type = 0
and further filters to restrict update to one record;
运行更多选择查询来检查更新结果。当您足够自信时,运行原始更新查询。
你测试过了吗? (最好在测试系统上) –
你在用单引号或双引号将单引号混淆。我投票结束诸如简单的印刷错误等问题。 –