在这篇文章中,我们将看到SQL中的=和IN操作符的区别。

1. =操作符:
= 操作符在SQL中与Where子句一起使用。例如,有下面的学生表。

ROLL_NO    NAME    ADDRESS    PHONE    Age
1    Ram    Delhi    xxxxxxxxxx    18
2    RAMESH    GURGAON    xxxxxxxxxx    18
3    SUJIT    ROHTAK    xxxxxxxxxx    20
4    SURESH    Delhi    xxxxxxxxxx    18
3    SUJIT    ROHTAK    xxxxxxxxxx    20
2    RAMESH    GURGAON    xxxxxxxxxx    18

查询
要获取地址为DelhiROHTAK的学生记录。使用=运算符的SQL查询是:

SELECT * 
FROM Student 
WHERE ADDRESS='Delhi' OR ADDRESS='ROHTAK';

查询结果如下:

ROLL_NO    NAME    ADDRESS    PHONE    Age
1    Ram    Delhi    xxxxxxxxxx    18
3    SUJIT    ROHTAK    xxxxxxxxxx    20
4    SURESH    Delhi    xxxxxxxxxx    18
3    SUJIT    ROHTAK    xxxxxxxxxx    20

2. IN操作符:
IN操作符与Where子句一起使用,用于测试表达式是否与值列表中的任何值相匹配。使用IN运算符的好处是,它避免了使用多个OR运算符。

查询
要获取地址为DelhiROHTAK的学生记录。使用IN运算符的SQL查询是:

SELECT * 
FROM Student 
WHERE ADDRESS IN ('Delhi', 'ROHTAK');

运行结果如下:

ROLL_NO    NAME    ADDRESS    PHONE    Age
1    Ram    Delhi    xxxxxxxxxx    18
3    SUJIT    ROHTAK    xxxxxxxxxx    20
4    SURESH    Delhi    xxxxxxxxxx    18
3    SUJIT    ROHTAK    xxxxxxxxxx    20

= 和 IN 操作符之间的区别:

= 操作符 IN 操作符
= 操作符允许比较具有单个值的属性。 IN 操作符允许比较具有多个值的属性。对于单值比较,其行为与=相同。
对于多值比较,必须使用适当的操作符。 IN 操作符(如JOIN, OR, AND等)不需要额外使用操作符。
在子查询返回单值的情况下很有用。 在子查询返回多个值作为结果的情况下很有用。
如果子查询有一个以上的结果,它将产生一个错误。 如果子查询有多个结果,它不会产生错误。
与IN操作符相比,它更快。 与=相比,IN子句的速度较慢,因为它与多个值进行比较,直到满足条件。