假设有人来找你,并说我们将通过替换等于减少我们编写的SQL数量IN.单用标量值和数字列表都可以使用.
SELECT *
FROM table
WHERE id = 1
Run Code Online (Sandbox Code Playgroud)
要么
SELECT *
FROM table
WHERE id IN (1)
Run Code Online (Sandbox Code Playgroud)
这些语句是否等同于优化程序生成的语句?
从表面上看,这看起来非常简单,但由于两个原因导致简化:1.不需要复制大块SQL,以及2.我们不会过度使用动态SQL.
这是一个人为的例子,但请考虑以下内容.
select a.* from tablea a
join tableb b on a.id = b.id
join tablec c on b.id2 = c.id2
left join tabled d on c.id3 = c.id3
where d.type = 1
Run Code Online (Sandbox Code Playgroud)
......对于不止一个案例,也是如此
select a.* from tablea a
join tableb b on a.id = b.id
join tablec c on b.id2 = c.id2
left join tabled d on c.id3 …Run Code Online (Sandbox Code Playgroud)