SQL使用=和IN之间的区别

Ram*_*Ram 4 sql oracle

在SQL中的WHERE子句中使用以下语句之间的区别是什么?

WHERE STUDENTID=7
Run Code Online (Sandbox Code Playgroud)

要么

WHERE STUDENTID IN (7)
Run Code Online (Sandbox Code Playgroud)

有推荐/最佳选择吗?

Chr*_*ron 6

如果你做多个或者例如,请使用IN

Where StudentID = 7 or StudentID = 6 or StudentID = 5
Run Code Online (Sandbox Code Playgroud)

将会

Where StudentID IN (5,6,7)
Run Code Online (Sandbox Code Playgroud)

否则只需使用=


Guf*_*ffa 5

没有功能差异,结果是一样的.

如果数据库对它们的处理方式不同,性能会有所不同,但数据库可能会识别出您在in表达式中只使用了一个值,并且实际上将执行计划视为第一个.

您可能希望以任何一种方式使用第一种方式,这样可以更清楚地表明您打算进行精确比较,并且不会忘记将其他值放在in表达式中.