SQL语句中equals和=的区别

时间:2021-03-05 15:46:30
在SQL语句中equals和=有什么区别??
比如举个例子:要查询姓名是张三同学的成绩
SELECT Score FROM Tbl_score WHERE StuId=(SELECT StuId FROM Tbl_StudentInfo WHERE StuName='张三');
这个中=号和equals有什么别、是否完全等价??不是的话  区别在哪里呢??

9 个解决方案

#1


SQL里有EQUALS 么?

#2


没见过

#3


没有这东西

#4


程序里才有equals的呢。

#5


我查了下资料 
谈论 equals() 和 hashCode() 的文章太多了,而关于 equals() 和 == 之间的区别,能找到的文章不多。但是搞清楚这点非常重要。如果没搞清楚的话,很容易写出 BUG 而不自知。

二者的区别在于:

equals() 方法用于比较两个对象,比较它们的值是否相等;
== 运算符用于比较两个变量,比较它们是否引用到同一个对象。
我们在写 Java 代码的时候,看到的都是变量,而不是对象。对象是我们无法直接访问的,我们只能通过变量来操作对象。变量的值就是对象的引用,所以换句话说:equals() 用来比较两个对象的值,== 用来比较两个变量的值。

(例外情况:当变量被定义为基本型别时,它不会指向对象,它的值就是基本型别的值。这种情况本文不讨论。)

栽在这上面的初学者太多了。

典型的例子就是 String。为什么 String 不能用 == ?因为 String 是对象,只有当 String a 和 String b 指向同一个对象的时候,a == b 才会是 true;否则的话,即使两个 String 对象的值相同,a == b 也会是 false。

而且要注意,当 String a = "a";String b = "a"; 的时候,a 和 b 两个变量指向的就是同一个 String 对象 "a"。这是 Java 为了节省内存做的优化,但却让很多人误以为 String 对象可以用 == 来比较。其实这是错的。

所以,原则上,对象之间的比较都要用 equals() 方法,但有时候我们也可以用 == 来比较对象。例如枚举类,它只允许有那么几个对象,所以可以用 == 来比较。或者我们确实想要知道两个变量是不是指向同一个对象,这时候也应该用 ==。

#6


哦,对  记错了,  有in  和编程里的搞混淆了。。。

#7


哦,对  记错了,  有in  和编程里的搞混淆了。。。
===============
功能不一样
in()可以多个
=   只有一个!

#8


引用 6 楼 lqzxxdy 的回复:
哦,对  记错了,  有in  和编程里的搞混淆了。。。
在。。。中

#9


呵呵,好久没碰数据库的东西了,最近要弄一下,结果就和编程里的混淆起来了。。。

#1


SQL里有EQUALS 么?

#2


没见过

#3


没有这东西

#4


程序里才有equals的呢。

#5


我查了下资料 
谈论 equals() 和 hashCode() 的文章太多了,而关于 equals() 和 == 之间的区别,能找到的文章不多。但是搞清楚这点非常重要。如果没搞清楚的话,很容易写出 BUG 而不自知。

二者的区别在于:

equals() 方法用于比较两个对象,比较它们的值是否相等;
== 运算符用于比较两个变量,比较它们是否引用到同一个对象。
我们在写 Java 代码的时候,看到的都是变量,而不是对象。对象是我们无法直接访问的,我们只能通过变量来操作对象。变量的值就是对象的引用,所以换句话说:equals() 用来比较两个对象的值,== 用来比较两个变量的值。

(例外情况:当变量被定义为基本型别时,它不会指向对象,它的值就是基本型别的值。这种情况本文不讨论。)

栽在这上面的初学者太多了。

典型的例子就是 String。为什么 String 不能用 == ?因为 String 是对象,只有当 String a 和 String b 指向同一个对象的时候,a == b 才会是 true;否则的话,即使两个 String 对象的值相同,a == b 也会是 false。

而且要注意,当 String a = "a";String b = "a"; 的时候,a 和 b 两个变量指向的就是同一个 String 对象 "a"。这是 Java 为了节省内存做的优化,但却让很多人误以为 String 对象可以用 == 来比较。其实这是错的。

所以,原则上,对象之间的比较都要用 equals() 方法,但有时候我们也可以用 == 来比较对象。例如枚举类,它只允许有那么几个对象,所以可以用 == 来比较。或者我们确实想要知道两个变量是不是指向同一个对象,这时候也应该用 ==。

#6


哦,对  记错了,  有in  和编程里的搞混淆了。。。

#7


哦,对  记错了,  有in  和编程里的搞混淆了。。。
===============
功能不一样
in()可以多个
=   只有一个!

#8


引用 6 楼 lqzxxdy 的回复:
哦,对  记错了,  有in  和编程里的搞混淆了。。。
在。。。中

#9


呵呵,好久没碰数据库的东西了,最近要弄一下,结果就和编程里的混淆起来了。。。