MySQL运算符
1. 如果用数字除以0,MySQL会返回NULL
mysql > select 1 / 0, 0 / 0;-->以上都返回NULL
2. 用字符串表示的数字在任何可能便于计算的地方都被转换成数字,其转换规则如下
如果第一位是数字的字符串被用于算数运算中,那么他被转换成这个数字的值
如果一个包含字符和数字的缓和字符串不能被转换成数字,那么他被转化成0
mysql > select '500' + '00002', '8.9' * 10, '90AA' + '0', '90AA' + '1'; --->502, 89, 90, 100
mysql > select 'a500' + 2, 'a02' + '20a', '0a0' + '302', 'a' + 'b'; --> 2, 20, 302, 0
3. 比较运算符
<>, != 不等于
<=> NULL的安全等于
regexp或rlike 正则匹配
注意:比较时,MySQL会根据需要自动把数字转换成相应的字串或者把字串转化成相应的字串
mysql > 6 = '6ghf', '6' = '6ghg', '6ghf' = 6,'ghf' = 6, 6 = 'ghf'--> 1, 0, 1, 0,0
以上估计是把‘6ghf’和数字比较时,将字串转换成相应的数字了
任何值与NULL比较结果都是NULL
mysql > SELECT NULL = NULL, 0 = NULL, 0 <> NULL, NULL <> NULL;--> null, null, null, null
MySQL在比较字符串时不区分大小写,要想区分带小写用binary关键字
mysql > SELECT 'aloha' = 'Aloha', BINARY 'aloha' = 'Aloha'; --> 1, 0
注意,MySQL比较字符串时,忽略末尾空格,制表符和换行(貌似只忽略空格,不忽略制表符和换行)
但是不忽略字符串开始处的空格
判断值是否为NULL用is null或者is not null或者用<=>来比较是否和null相等
mysql > NULL + 1 <=> NULL; -->1
4. like
对于like来说, %表示任意数目任何字符,_表示任何单个字符,且like比较默认不区分大小写,区分大小写时可以添加binary关键字
regexp用于正则比较,
正则表达式中使用的元字符
+ 匹配1个或者多个前面的字符
* 匹配0个或多个前面的字符
? 匹配0或者1个前面的字符
. 匹配任意字符
^ 匹配字符串开始部分
$ 匹配字符串结尾部分
\s 匹配单个空白字符,包括制表符和换行符
\S 匹配空白符以外的一切字符
\d 匹配0-9之间的数字
\w 匹配字母,下划线和数字
\W 匹配\w不匹配的任何字符
浙公网安备 33010602011771号