一目的:实现用户某些新的需求
二使用算术运算符
select 6/0,
6%4,
6+4;
三使用比较运算符
等于:<=>,能操作null值, 但=不能操作null值
不等于:<>
相等返回1,否则返回0
regexp 正则表达式
select 1+2<=>3,
'jiko' <> 'ghj';
select 'fghj' regexp '[fg]', 1
'sdfg' regexp 'a*g', 1
'sdfg' regexp 'a+g' ; 0
四使用逻辑运算符
与:AND &&:所有操作数不为0且不为NULL时,结果返回1;存在任何一个操作数为0时,返回结果为0;存在任意一个操作数为NULL且没有操作数为0,返回结果为NULL
select 3 AND 4, 1
0 AND 3, 0
0 AND NULL; 0
3 AND NULL; NULL
或:OR ||:所有操作数中存在任何一个不为0,结果返回1;所有操作数为0时,返回结果为0;所有操作数不包含0但包含NULL且,返回结果为NULL
select 3 or 4, 1
0 or 3, 1
0 or NULL; NULL
0 or 0; 0
非:! NOT:操作数为非0,结果返回0;操作数为0,结果返回1;操作数为NULL,返回结果为NULL
select not 3, 0
not 0, 1
not null; null
异或:XOR :操作数中包含null,结果返回null;操作数中同为0或同时不为0,结果返回0;操作数不同时为0,结果返回1;
select 3 xor 4, 0
0 xor 0, 0
0 xor 3, 1
0 xor NULL; null
3 xor NULL; NULL
五使用位运算符
按位与 &
select 5&6,bin(5&6) 二进制,
4&5&6,bin(4&5&6) 二进制;
5&6 二进制, 4&5&6 二进制
4 100 4 100
按位或 |
select 5|6,bin(5|6) 二进制,
4|5|6,bin(4|5|6) 二进制;
5&6 二进制, 4&5&6 二进制
7 111 7 111
按位取反 ~ 64位 8字节
按位异或 ^
select 4^5,bin(4^5); 1 1
按位左移 <<
5的二进制是101,向左移动四位 1010000,换成10进制是80
select 5<<4;
按位右移 >>
5的二进制是101,向右移1位是10,二进制是2
2938

被折叠的 条评论
为什么被折叠?



