Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL-在一个集合查询中的何处之前有一个和意味着什么?_Mysql_Sql_Syntax_Sql Update - Fatal编程技术网

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在布尔和整数方面的宽容。向上投票。