比如举个例子:要查询姓名是张三同学的成绩
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()可以多个
= 只有一个!
===============
功能不一样
in()可以多个
= 只有一个!
#8
在。。。中
#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()可以多个
= 只有一个!
===============
功能不一样
in()可以多个
= 只有一个!
#8
在。。。中
#9
呵呵,好久没碰数据库的东西了,最近要弄一下,结果就和编程里的混淆起来了。。。