将 mysql EXISTS 与常量字符串一起使用
Use mysql EXISTS with a const string
你能帮我理解 EXISTS
和 IN
使用 mysql 的区别吗?
在我的应用程序中,我在查询中使用 IN
,
因为我使用 memcached 来存储 IN 值,
所以我更快地找到 EXISTS,
例如:
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 来提高效率。
你能帮我理解 EXISTS
和 IN
使用 mysql 的区别吗?
在我的应用程序中,我在查询中使用 IN
,
因为我使用 memcached 来存储 IN 值,
所以我更快地找到 EXISTS,
例如:
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 来提高效率。