MySQL-在一个集合查询中的何处之前有一个和意味着什么?
最近,我发现我在一年前修改的一个查询正在悄无声息地失败(什么也不做) 我把问题归咎于语法错误。我没有用逗号来设置多个字段,而是错放了。因此,它没有按预期设置第二个字段,而是根本没有设置任何字段 我最初的查询是这样的:MySQL-在一个集合查询中的何处之前有一个和意味着什么?,mysql,sql,syntax,sql-update,Mysql,Sql,Syntax,Sql Update,最近,我发现我在一年前修改的一个查询正在悄无声息地失败(什么也不做) 我把问题归咎于语法错误。我没有用逗号来设置多个字段,而是错放了。因此,它没有按预期设置第二个字段,而是根本没有设置任何字段 我最初的查询是这样的: UPDATE `report` SET `confirm` = 2 WHERE `id` = 999 这样修改显然是非常有效的语法: UPDATE `report` SET `confirm` = 2 AND `time_confirm` = UNIX_TIMESTAMP() W
UPDATE `report` SET `confirm` = 2 WHERE `id` = 999
这样修改显然是非常有效的语法:
UPDATE `report` SET `confirm` = 2 AND `time_confirm` = UNIX_TIMESTAMP() WHERE `id` = 999
我知道我应该使用逗号(即使当时我也这么做了),我甚至应该测试这样一个小的简单更改(超出了标准错误处理),现在我为这个错误付出了高昂的代价。然而,我仍然很好奇为什么这个查询是有效的,以及它实际上在做什么
根据,它希望在该位置有一个逗号分隔的任务列表
我提出的查询实际上是做什么的?为什么在MySQL语法中允许它而不引发任何错误?并且也是一个逻辑运算符(),因此您应该理解语法的含义:
分配(2和
time\u confirm
=UNIX\u TIMESTAMP())以确认,同时也是一个逻辑运算符(),因此语法应表示:
分配(2和
time\u confirm
=UNIX\u TIMESTAMP())进行确认即使我100%同意你的问题,我倾向于不喜欢MySQL在布尔和整数方面的宽容。向上投票。尽管我100%同意你的问题,但我倾向于不喜欢MySQL在布尔和整数方面的宽容。向上投票。