0

EXISTS你能帮我理解mysql和使用mysql的区别IN吗?
在我的查询中使用的应用程序IN中,因为我使用 memcached 来存储 IN 值,
所以我发现 IN 更快地存在 EXISTS,例如:

String my_chached_string = Memecached.get('somekey')
"SELECT * FROM Table t WHERE t.fromId IN (" + my_chached_string + ")"

我的问题,有没有办法以相同的方式使用 EXISTS 并具有恒定值?

谢谢你

4

1 回答 1

2

以下是一些常见的编码模式:

WHERE col = 'string'
WHERE col IN ('string') -- same as above
WHERE col IN ('string1', 'string2')
WHERE EXISTS ( SELECT * FROM tbl WHERE ... )

EXISTS 真正解决了不同的情况。我不明白你为什么把它扔进去。即使有一个等效的 EXISTS 模式,它的效率也必然会降低。

这种模式非常低效:

WHERE col IN ( SELECT ... )

它通常可以通过转换为 JOIN 来提高效率。

于 2015-02-21T23:35:46.310 回答