mysql - 将 mysql EXISTS 与 const 字符串一起使用

标签 mysql sql exists sql-in

你能帮我理解使用mysql的EXISTSIN之间的区别吗?
在我的应用程序中,我在查询中使用 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/

相关文章:

mysql - 如果行 > 0 则更新或在 Mysql 上插入

tsql - 检查表是否包含具有特定列值的行

php - 生成一个长度为 65,535 字节的文本文件

mysql - 计算单个语句中第二个查询中第一个查询的 SQL 结果

mysql - 如何以正确的语法编写此查询?

java - Spring Security 使用 sql 查询对管理员进行身份验证

mysql - 选择包含在另一个表的集合中的行

sql - 如何优化查询以计算行相关的日期时间关系?

MYSQL 优化重复表达式?

java - 从MySql数据库到嵌入式数据库?