我最近将服务器升级到MySQL 5.7,并且我注意到任何尝试将0作为数字插入的查询(即,没有引号使其成为字符串)会引发语法错误。
例如:
INSERT INTO
users_transactions
SET
`discount_percent` = 0,
`total_cost` = 20.00;
插入浮动20.00很好,但是0会导致一个意外的令牌附近,'好像0不是数字。
这是遗留代码,其中一些已经运行了10年或更长时间。改变了什么,以及为什么0会被视为与另一个数字不同?
搜索对此行为的引用尚未产生任何结果。编辑查询以阅读discount_percent
=' 0'这很容易,但我想了解原因。
更新
额外的信息 - 我在多个INT字段上看到过这种行为,而不仅仅是这个。