读书人

Where语句中有多个条件时怎么办

发布时间: 2012-03-03 15:33:03 作者: rapoo

Where语句中有多个条件时,怎么处理?
哥几个,是这样,我在写一个数据库,解析SQL语句时候我有这么一个疑问:

如果有一个where语句假设为“WHERE A AND B OR C”,A,B,C是三个条件。请问我该怎样写程序来做这个where语句要做的事情呢?或者我想知道现有数据库(SQL Server, MySQL)都是怎么做的? 谢谢!

[解决办法]
MYSQL中很复杂,会先进行索引分析,然后如果有索引,则打开索引文件,找到这些记录在数据文件中的位置,然后从数据文件中读取记录根据WHERE后的条件判断输出。

你可以直接下载MYSQL的源代码看其中的 select.c
[解决办法]
不知道嵌套会不会省点时间
[解决办法]
A and B or C ?
==> C or (A and B) ?
==> A and (B or C) ?

[解决办法]
嗯~基本上,现在语法上的不同(语意一致),已经很少能影响数据库的最终效率了
现在的优化,已经做的很好,很BT了~
还有,有关bool运算符~你可以google 一下 "逻辑短路"
[解决办法]
举个例子 A and B
这个就会优化,假如A为false,就不再判断B了~
[解决办法]
逻辑判断主要是看运算的先后顺序,然后就是判断哪种方法能最快得到结果。比如说A or C。任意一个满足就可以,这时就需要判断哪个条件更容易实现或者说筛选。总之,多想想,用程序实现起来也不难。

读书人网 >其他数据库

热点推荐