数据库sql中的运算符=ALL是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库sql中的运算符=ALL是啥意思相关的知识,希望对你有一定的参考价值。

参考技术A ALL为一个结果集,=ALL,即等于结果集中所有值。
例表
:
table_a
a
1
2
3
4
-----------------------------------------------
table_b
a
1
select
*
from
table_a
where
a
=
all(select
a
from
table_b)
语句等效于
select
*
from
table_a
where
a
=
1
检索结果为:1
--------------------------------------------
table_c
a
1
1
select
*
from
table_a
where
a
=
all(select
a
from
table_c)
语句等效于
select
*
from
table_a
where
a
=
1
检索结果为:1
---------------------------------------
table_d
a
1
2
select
*
from
table_a
where
a
=
all(select
a
from
table_d)
则返回结果集为空
---------------------------------------------------
以上的例子,即a列的值与
all结果集所以的值对比。
而实际应用中,ALL更常与
‘>’
,‘<
’运算符组合,来选择一个范围内的数据。

这个 ~ 运算符在这里是啥意思?

【中文标题】这个 ~ 运算符在这里是啥意思?【英文标题】:What does this ~ operator mean here?这个 ~ 运算符在这里是什么意思? 【发布时间】:2010-12-30 08:32:24 【问题描述】:

例子:

set_error_handler(array($this, 'handleError'), E_ALL & ~E_STRICT & ~E_WARNING & ~E_NOTICE);

这是什么意思?

【问题讨论】:

【参考方案1】:

它是bitwise not operator(也称为“补码”)。也就是说~ $a中设置的位是$a中没有设置的位。

那么

E_ALL & ~E_STRICT & ~E_WARNING & ~E_NOTICE

是在E_ALL 中设置的位以及在E_STRICTE_WARNINGE_NOTICE 中未设置的位。这基本上说明了除了严格、警告和通知错误之外的所有错误。

【讨论】:

【参考方案2】:

这是bitwise-not operator。例如,二进制表示01011110 的数字的按位否定将是10100001;每一位都翻转到相反的位置。

【讨论】:

虽然这是技术解释,但除非您意识到E_STRICTE_WARNINGE_NOTICE 等,否则该解释无济于事。人。是整数,同时与&amp; 位运算符组合。【参考方案3】:

按位(&、|、~)和非按位(&&、||、!)运算符之间的区别在于,按位应用于整数中的所有位,而非按位将整数视为单个“真”(非零)或“假”(零)值。

比如说,$flag_1 = 00000001$flag_2 = 00000010。对于非按位运算,两者都为“真”($flag_1 &amp;&amp; $flag_2 为“真”),而$flag_1 &amp; $flag_2 的结果为 00000000,$flag_1 | $flag_2 的结果为 00000011。~$flag_2 为 11111101,当对运行结果进行按位与运算时,将清除该位位置(xxxxxx0x)。 $flag_2 对运行结果进行按位或运算将设置该位位置 (xxxxxx1x)。

【讨论】:

【参考方案4】:

参见Bitwise Operators:它是“非”运算符(引用)

~ $a $a 中设置的位是 未设置,反之亦然。

这意味着,以您发布的内容为例,这部分代码:

var_dump(decbin(E_STRICT));
var_dump(decbin(~E_STRICT));

会给你这个输出:

string '100000000000' (length=12)
string '11111111111111111111011111111111' (length=32)

(在第一行的左侧添加几个0 用于填充,你就会明白我的意思了)

从第二个输出中删除填充,您会得到:

100000000000
011111111111

这意味着~ 运算符为输入中等于1 的每个位提供了一个0 位——反之亦然,

【讨论】:

【参考方案5】:

这是not 按位 运算符。在此处阅读按位运算符:

http://php.net/manual/en/language.operators.bitwise.php

【讨论】:

以上是关于数据库sql中的运算符=ALL是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

SQL中的自然连接是啥意思啊?

MySQL的SQL语句 - 数据操作语句(13)- 子查询

数据库中的sql查询是啥意思?

sql中的select是啥意思

=> 在 oracle pl sql.is 和调用运算符中是啥意思?

mysql的查询语句union是啥意思