language-agnostic - 查询语言的运算符 OR 的优先级是否应该高于 AND 的优先级?

标签 language-agnostic programming-languages search-engine coding-style

传统上,大多数编程语言的 AND 优先级高于 OR 的优先级,因此表达式“a OR b AND c”被视为“a OR (b AND c)”。遵循这个想法,搜索引擎和查询/寻址语言(css、xpath、sql 等)使用相同的优先级。是不是搞错了?

当处理足够大的数据时,这种优先级排序是不方便的,因为它不可能在不使用括号的情况下创建可重用的查询上下文。使用 AND 创建上下文,然后使用 OR 在该上下文中合并结果会更方便。如果将空格用作 AND 运算符,将逗号用作 OR 运算符,则更加方便。

例子:
在互联网上搜索 11 月或 12 月飞往巴哈马的机票时,输入“巴哈马 11 月、12 月机票”而不是“巴哈马 11 月机票”、“巴哈马 12 月机票”或“巴哈马 11 月机票”会更方便,十二月)”

在 CSS 中,如果我们需要设置 2 个元素的红色样式,我们必须这样做: body.app1 div.d1 td.phone span.area, body.app1 div.d1 td.fax span.area{color:red}复制前缀 body.app1 div.d1 和后缀 span.area

如果 OR 的优先级高于 AND,我们会在 CSS 中这样写: body.app1 div.d1 td.phone,td.fax span.area{color:red}

当然,这个想法可以发展为有2个运算符OR,一个优先级高于AND,一个优先级较低,例如','更高,';'较低,但在许多情况下,语言没有多余的符号来扩展这种方式,而且“,”的现有优先级也很低。

最佳答案

我宁愿在代码、SQL、搜索查询中的任何地方都保持一致性,这样我就不必记住在这种特定情况下它会走哪条路。

关于language-agnostic - 查询语言的运算符 OR 的优先级是否应该高于 AND 的优先级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1615071/

相关文章:

java - Hibernate 搜索查询?

ASP.NET 搜索引擎

algorithm - 把猫扔出窗外

datetime - 确定两个日期范围是否重叠

programming-languages - 为什么变量以数字开头是非法的?

programming-languages - 神秘的编程语言

language-agnostic - 一个向前的单词和向后不同的单词的代码

language-agnostic - 搜索排序矩阵的最有效方法?

programming-languages - 企业级Scala

javascript - 实现搜索功能