你能帮我理解使用mysql的EXISTS
和IN
之间的区别吗?
在我的应用程序中,我在查询中使用 IN
,
因为我使用 memcached 来存储 IN 值,
所以我更快地发现存在,
例如:
String my_chached_string = Memecached.get('somekey')
"SELECT * FROM Table t WHERE t.fromId IN (" + my_chached_string + ")"
我的问题,有没有办法以相同的方式使用常量值的 EXISTS ?
谢谢
最佳答案
以下是一些常见的编码模式:
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 通常可以提高效率。
关于mysql - 将 mysql EXISTS 与 const 字符串一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28651680/