1.mysql中:=和=的区别??
(1)=
只有在set和update时才是和:=一样,赋值的作用,其它都是等于的作用。鉴于此,用变量实现行号时,必须用:=
(2):=
不只在set和update时时赋值的作用,在select也是赋值的作用。
@num:=@num+1,:=是赋值的作用,所以,先执行@num+1,然后再赋值给@num,所以能正确实现行号的作用。
@num=@num+1,此时=是等于的作用,@num不等于@num+1,所以始终返回0,如果改为@num=@num,始终返回1了。mysql数据库中,用1表示真,0表示假。
2.怎么理解SQL语句中的’or 1=‘1或者’ or 1=1#??
select * from tablename where username = 'parameter1' and passward = 'parameter2';
//parameter1拼接'or 1='1'成为'parameter1' or 1='1'
select * from tablename where username = 'parameter1' or 1='1' and passward = parameter2;
//相当于是
select * from tablename;
//直接获取该表所有的数据