对MySql中有评论的结果表示怀疑
最近,我遇到了一个代码的问题,我得到了一个奇怪的结果。几分钟后,我就能找到结果了。我做了这个简单的测试,以检查我的查询是否有问题:
select
NOW()as date_1,
'4: 33.32%' as string_1, 
--- comment,
NOW() as date_2, 
--- comment
'4: 33.32%' as string_2 我得到了这个结果:

不巧的是,我对这两个评论都做了这个小小的改动:
select
NOW()as date_1,
'4: 33.32%' as string_1, 
--- comment,
NOW() as date_2, 
--- comment
'4: 33.32%' as string_2, 
-- - comment,
NOW() as date_3, 
-- - comment
'4: 33.32%' as string_3这样,我就有了正确的答案:

然而,我对第二个日期和字符串之前的评论有疑问。为什么连续第三个连字符会影响结果以及它强制执行的计算是什么。
版本: 10.3.8-MariaDB
发布于 2019-06-21 23:49:03
SQL注释以--<space>开头。当您编写---<space>时,第一个-不是注释的一部分,它是注释之前的减号。所以就像你写的
select
NOW()as date_1,
'4: 33.32%' as string_1, 
- -- comment,
NOW() as date_2, 
- -- comment
'4: 33.32%' as string_2, 
-- - comment,
NOW() as date_3, 
-- - comment
'4: 33.32%' as string_3当您删除注释时,这相当于
select
NOW()as date_1,
'4: 33.32%' as string_1, 
- NOW() as date_2, 
- '4: 33.32%' as string_2, 
NOW() as date_3, 
'4: 33.32%' as string_3-操作符首先将其操作数转换为数字,因此NOW()中的日期被转换为数字20190621200233,字符串'4: 33.32%'被转换为number 4.000。然后,-运算符返回这些数字的负数,因此在结果中可以看到-20190621200233和-4.000。
https://stackoverflow.com/questions/56711297
复制相似问题