易截截图软件、单文件、免安装、纯绿色、仅160KB

急,mysql中where and 的执行顺序

selcect name from tableA where code in (select code from tableB where id='tableB_id')and sex='01';其中where语句后面的and有执行顺序吗,是先执行code in (select code from tableB where id='tableB_id') 还是先执行sex='01'?急,我想先执行sex='01'提高效率。我的数据库是mysql的,谢谢!


你在什么字段上建立的索引

tableA 是按code建立的,tableB没建立索引

在code和sex上建立组合索引会提高效率。
单独在sex上建立索引值的变化很少(基本等于布尔型),没有效率。
执行顺序应该是先执行子查询,然后子查询返回的结果中进行条件比较。
如果每次比较都要做一次子查询效率太低,而且没有必要,这个在优化器中应该会处理的。


where 后的顺序 MYSQL会根据索引自行优化。

你现在有索引,MYSQL会先使用 code in (select code from tableB where id='tableB_id')  无论这个条件在前在后。

你可以用 explain selcect name from tableA where code in (select code from tableB where id='tableB_id')and sex='01';
看一下执行计划。

where执行顺序是从后往前执行的。。


相关问答:

mysql的驱动程序

我有一个java环境下的程序,在本机运行正常,但发布到网的虚拟主机时不能连接数据库连接池
jdk 1.6 tomcat6.0.18 mysql5 mysqljdbc5.1.5
虚拟主机的技术人员说,只能配置局域的数据库连接池,也就是在M ......

mysql模糊查询如何查询两个关键字

我用的like模糊查询,比如mysql的name中有“csdn论坛系统”这几个字,如何在 <input>中查询“csdn 系统”也能出来这个“csdn论坛系统”,我现在是查“csdn”或者“系统”都可以。谢谢各位了!不知道我这么表达 ......

请教一个mysql俩表连接的问题

有一条sql语句 select a.name ,b.name from tableA a,tableB b where a.id = b.id and 。。。(其他过滤条件)
其中a.id 为tableA主键 有唯一性索引 数据量才1千多
b.id 为日志表tableB 的外键 ,慢去条件的才 ......

MYSQL与Smarty的应用

在三十讲遇到这样一个问题就是运行代码时出现错误 Fatal error: Call to undefined method mysql::fetch_array() in D:\WWW\news\index.php on line 12
,我把mysql::fetch_array() 改成mysql::fetch_row() 又出现F ......

Mysql 使用问题 - Java / Web 开发

我的Mysql 使用的时候 用dos建立的数据表 在dos中能显示出中文 
但是在 其他的可视页面 和网页中都显示乱码 如何解决?
在mysql控制台:show variables like 'char%';贴结果出来看看。

mysql命令行模式下: ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号