Laravel中的所有SQL运算符是什么?

时间:2015-11-16 19:29:00

标签: php mysql laravel eloquent

我正在查看Laravel的源代码,我发现了很多针对Eloquent的SQL运算符,我想知道它们中的一些是什么以及如何使用它们。

遗憾的是,我没有设法找到任何文档。

以下是我在vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php中找到的运营商:

protected $operators = [
    '=', '<', '>', '<=', '>=', '<>', '!=',
    'like', 'like binary', 'not like', 'between', 'ilike',
    '&', '|', '^', '<<', '>>',
    'rlike', 'regexp', 'not regexp',
    '~', '~*', '!~', '!~*', 'similar to',
    'not similar to',
];

还有一些我不明白的。例如:&|^<<>>~~*!~!~*

有人能告诉我一个如何使用它们的例子吗?

由于

3 个答案:

答案 0 :(得分:9)

就像其他评论者提到的那样,那些是按位运算符。这里记录了PHP的按位运算符:http://php.net/manual/en/language.operators.bitwise.php

<强>实施例

&bitwise AND运营商。

  

按位AND采用两个等长二进制表示和   对每对相应的执行逻辑AND操作   比特,乘以它们。因此,如果两个位都处于比较位置   为1,结果二进制表示中的位为1(1×1 =   1);否则,结果为0(1×0 = 0且0×0 = 0)

10&amp; 10 = 10(所有十进制表示)。怎么样? 10是1010二进制。

    1010
and 1010
--------
    1010

请注意,仅当同一列中的顶部和底部数字均为1时,结果才为1.

PHP的写作方式:

<?php
echo 10 & 10;
?>
Result: 10

它的实际用途是什么?我们举一个例子:有4套双门。两扇门必须同时打开才能让人通过。门户开放时间为1号。闭门号为2号。

1010表示第一扇门打开,第二扇门关闭,第三扇门打开,第四扇门关闭。当所有门关闭时,它们看起来像这样:

0000  <-- first set of doors
0000  <-- second set of doors

为了允许某人通过最左边的门,门应该是这样的:

0001
0001

这一切都很好,但有一种更快的方式来注释。按位运算符&amp ;.我们做&amp;在两个门之间得到1的结果。因此,如果数据存储为1,我们知道最左边的门是打开的。

要打开最左边的门,组合必须是:

1000
1000

按位运算符的结果是十进制8.使用calculator like the one on miniwebtool运行一些数学运算。

另一方面,当门打开和关闭一整天时,可以记录4组门中的任何一扇门都打开时的情况。对于一个简单的问题,这只是一个冗长的答案。

答案 1 :(得分:4)

将此作为对原始问题的评论发布:

他们是按位运算符。 Here就是他们所做的(这是javascript实现)。

答案 2 :(得分:2)

它们是laravel的where()方法中使用的按位运算符,它们作为oprerators提供,您可以找到有关这些opreat的更多详细信息Here