为什么有两个不同的逻辑运算符似乎做同样的事情(<= & !>),有没有一种情况会优先于另一个?
6 回答
<= 和 > 是比较运算符,而不是逻辑运算符。!是一个逻辑运算符(表示 NOT)。当你结合!和 >,您只是反转比较运算符,因此您的最终结果是相同的。
话虽如此, <= 是常见的形式,所以我会说它是首选,如果没有别的,它是为了可读性。我不知道这两者是否对性能有好处,但我对此表示怀疑。
编辑:另外,你没有说你正在处理哪种风格的 SQL。正如@harryovers 指出的那样,这是MS-SQL 中的有效运算符,但它可能并非在任何地方都有效。
拥有 !> 替代方案的一个原因是可以轻松地将 SQL 放入 XML 中。小于号引入了 XML 标记。如果带有 < 的 SQL 包含在 XML 或 HTML 中,则必须将其转义为 <。大于号没有任何特殊意义,除非它前面有一个小于号。
我不明白为什么您会使用其中一个,但!>
不在 ISO 标准中,基于此,我会说这<=
是首选方式。
和不是标准比较运算符,仅受少数系统支持,SQL-Server 是其中之一:!=
msdn !<
: Comparison Operators (Transact-SQL)。MySQL 也支持,但仅限于此,不支持其他两个。!>
!=
等效的标准 SQL 比较运算符是<>
,>=
和<=
。
在所有情况下,我都更喜欢标准。您不知道何时必须将代码迁移到另一个平台(并且要处理的错误更少。)
不,没有区别。我能想到的唯一原因是让它在特定上下文中更具人类可读性。
例如,出于同样的原因,我会使用< 5
,而不是<= 4
如果5代表上下文中的某些限制是否有意义。
When you say logical operators logical is AND
and OR
I've never seen !> I've seen <>
If you are referring to !=
and <>
they are the same.