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
posted @ 2024-07-29 20:20  格温小姐のgo  阅读(29)  评论(0)    收藏  举报