mysql操作符
0x00 注释符号
# //GET传入要使用%23编码过的
/**/ ///*/**/这样是等效于/**/
-- + //用这个符号注意是--空格任意字符
;%00
/*!*/ //这个比较特殊,里面可以执行函数: /*! version()*/,select的结果就是版本号了
0x00 操作符号
or, ||, |, //这三个都是或运算 将左右两边的值的二进制值进行按位或运算
and, &&, &, //这三个都是与运算 将左右两边的值的二进制值进行按位与运算
if(条件,esp1,esp2) //当条件结果为真时执行esp1,为假时执行esp2
运算的优先级
由高到低的顺序为:小括号,not,比较运算符,逻辑运算符(and比or先运算);
解释:where从左到右执行排除越多数据的放到第一个
例:where 条件1 and 条件2 or条件3 and 条件4的执行等价于
where (条件1 and 条件2 )or(条件3 and 条件4)//有小括号时小括号优先级最高。
另外,比较运算时,如果将 int型数据与 varchar型数据进行比较,mysql会进行将varchar -> int的转换:
  首字符为0或者其他字符的转为0
'a' ->0
'0a' ->0
'' ->0//空字符=0
'10a'->10//对于字段为varchar类型的 where colomn = 0;会将字段值转数字型转为0的全部取出
//另外任何数值与null的运算均为null

浙公网安备 33010602011771号