我在看别人的sql,他的代码是这样的
有一个名为 user_v
的 View ,其列 path
为 Array
select * from user_v where 'USER_TYPE'=path[2]
我不能用吗
path[2] = 'USER_TYPE'
最佳答案
这是一些程序员在使用容易混淆赋值和比较的语言(例如 C 或 PHP)时采取的预防措施,其中以下语句看起来很无辜:
if ( $foo = 1 )
但它实际上是将 1
赋值给$foo
,if
的计算结果总是true
(至少在 PHP 中,1
为 true)。意思是 if ( $foo == 1 )
。
如果颠倒参数,错误会很快变得明显:
if ( 1 = $foo ) # SYNTAX ERROR
if ( 1 == $foo ) # Desired behaviour
这有时被称为“yoda 编码”,在 the coding standards of Wordpress, for example 中.
另请参阅:Why put the constant before the variable in a comparison?
在 SQL 中,出现这种困惑的可能性较小,因为虽然 =
可以表示赋值或比较,但很少有拼写错误会选择错误含义的情况。
但是,如果项目使用的所有其他语言的编码标准都要求它,那么通过在 SQL 中也使用它来强化习惯是有意义的,因为我想不出具体的原因不是 这样写。
关于sql - 在sql中保留=左边的列有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24446970/