关于数据库or和and的用法

dyy0565 2011-10-23 06:30:57
or 跟 and 在执行数据查询的时候,到底是按照什么方式查询的?
比如。select * from table where a=1 and b=2;它是先在表中找a=1的记录,然后在a=1的记录中再寻找b=2的记录?还是先找b=2再找a=1的?
select * from table where a=1 or b=1;呢?

我有一个查询select * from table where a like '".$keyword."' or b like '".$keyword."';
我想模糊查询$keyword 在a字段或b字段出现的记录、
测试了下,用or查询到了全部记录 ,用and却查询到了……这是神马意思?and不是且么?
...全文
1173 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ohmygirl 2011-10-24
  • 打赏
  • 举报
回复
赞lz。。
绝对没有鄙视的意思。
其实and 和or就是运算符。。
当然也符合一般运算符的执行顺序(从左到右)。
dyy0565 2011-10-24
  • 打赏
  • 举报
回复
找了一些资料看了下,我的理解是,不管or还是and都是按照从左到右的执行顺序、、
于是.select * from table where a=1 and b=2还是select * from table where b=2 and a=1
的执行效率问题,要看a=1和b=2的记录数。记录数少的放在前面,操作时间长的放在后面(如连接运算)、
or的话,按照我的想法 应该是执行时间一样的。但是不知道从哪隐约记得看过的资料上说,or也是有区别的……
ps:大家可以 一起讨论、如果你觉得我的这个问题幼稚,没有意义,您可以选择无视我,或者在心里鄙视我、
但是,请不要把鄙视,说出来。
我承认我是菜鸟,没有你们这些已经工作了的老前辈水平高、我只是个还在学校为期末考试的奔波的人。但是,你不能否认,我有一颗不懂就问的心……这样有错么?
nlove518 2011-10-24
  • 打赏
  • 举报
回复
找到答案了没? 理解了没?
gengyanda 2011-10-23
  • 打赏
  • 举报
回复
按照最基本的流程的话,应该是先找a=1,然后看b等不等于2.第二个OR,应该是先找是a=1的,再找b=2的。
这也只是我的猜测。如果你是实现富裕的话,可以看看MYSQL的参考手册。后面几章有关于这方面的文档。http://dev.mysql.com/doc/refman/5.1/zh/index.html
dyy0565 2011-10-23
  • 打赏
  • 举报
回复
我这是两个问题、
1.select * from table where a=1 and b=2;和
select * from table where b=2 and a=1;的执行时间是否相同,在数据库内部,是先执行a=1查询,还是b=2查询?又或者全表同时查询a=1 and b=2、?
or的情况呢?
2.and 跟or 的用法我知道、刚才程序少写了一个字母,$keyword写成$keywor了。所以产生一点 疑惑、、
ZT_King 2011-10-23
  • 打赏
  • 举报
回复
AND,指当前记录中字段值同时符合条件才算成功,即且的意思;OR则是当前记录满足一个就筛选成功。
另:版主老大的话你要听,不然你懂的。
dyy0565 2011-10-23
  • 打赏
  • 举报
回复
数据库基础,也不会有,查询的底层执行顺序吧?
xuzuning 2011-10-23
  • 打赏
  • 举报
回复
建议你认真的补习一下数据库相关课程

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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