mysql WHERE查询机制

改一下昵称 2013-06-27 09:17:05
SELECT * FROM t WHERE a = 1 AND b = 1 AND c = 1

我的疑问是mysql是否会遵照次序依次进行:
1. 查出 a = 1 的所有记录
2. 从以上得出的记录中查出 b = 1 的
3. 同上

或者:
1. 查出 a = 1 以及 b = 1 以及 c = 1
...全文
166 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rotel-刘志东 2013-06-27
  • 打赏
  • 举报
回复
sql查询也是执行顺序的。  1、from子句组装来自不同数据源的数据; 2、where子句基于指定的条件对记录行进行筛选; 3、有无索引也是有差别的,没有索引同时三个条件,如果有索引的话索引优先。
rucypli 2013-06-27
  • 打赏
  • 举报
回复
如果任意个字段有索引则走索引 如果没有索引 则每条记录需要判断三个条件
ACMAIN_CHM 2013-06-27
  • 打赏
  • 举报
回复
如果什么索引都没有,则MYSQL会对表T中所有记录逐一检查是否符合条件 a = 1 AND b = 1 AND c = 1 如果有索引,则看索引的情况,这个可以先参考,阅读一下MYSQL官方免费手册的第七章,优化,中的WHERE优化部分。

56,912

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧