我在我的一个HQL查询中意外地使用了==
而不是=
,但令人震惊的是它没有抛出任何错误,但它本来应该为=
工作。我的问题是为什么我们在HQL中有==
运算符,两者之间的确切区别是什么。
答案 0 :(得分:5)
=
和==
运算符具有相同的功能
它们由完全相同的类实现。
system.registerGenericUDF("=", GenericUDFOPEqual.class);
system.registerGenericUDF("==", GenericUDFOPEqual.class);
+----------+---------------------+----------------------------------------------------------------+
| Operator | Operand types | Description |
+----------+---------------------+----------------------------------------------------------------+
| A = B | All primitive types | TRUE if expression A is equal to expression B otherwise FALSE. |
| A == B | All primitive types | Synonym for the = operator. |
+----------+---------------------+----------------------------------------------------------------+