跳到主要内容

支持操作符

Halo 数据库在 MySQL 兼容模式下支持以下操作符。

比较运算符​

支持 =、<> / !=、IS NULL / IS NOT NULL、BETWEEN ... AND 等比较运算符。

mysql> SELECT 1=0, '2'=2, 2=2;
+----------+----------+----------+
| ?column? | ?column? | ?column? |
+----------+----------+----------+
| 0 | 1 | 1 |
+----------+----------+----------+

mysql> SELECT NULL IS NULL, 10 IS NOT NULL;
+----------+----------+
| ?column? | ?column? |
+----------+----------+
| 1 | 1 |
+----------+----------+

mysql> SELECT 4 BETWEEN 4 AND 6, 12 BETWEEN 9 AND 10;
+----------+----------+
| ?column? | ?column? |
+----------+----------+
| 1 | 0 |
+----------+----------+

逻辑运算符​

支持 AND、OR、NOT、XOR 等逻辑运算符。

mysql> SELECT 1 XOR 1, 0 XOR 0, 1 XOR 0;
+----------+----------+----------+
| ?column? | ?column? | ?column? |
+----------+----------+----------+
| 0 | 0 | 1 |
+----------+----------+----------+

位运算符​

支持 |(位或)、&(位与)、^(位异或)、<<(左移)、>>(右移)等位运算符。

mysql> SELECT 10|15 AS bit_or, 10&15 AS bit_and, 10^15 AS bit_xor;
+--------+---------+---------+
| bit_or | bit_and | bit_xor |
+--------+---------+---------+
| 15 | 10 | 5 |
+--------+---------+---------+

mysql> SELECT 1<<2, 16>>2;
+----------+----------+
| ?column? | ?column? |
+----------+----------+
| 4 | 4 |
+----------+----------+