在mysql中,在进行数据库的增删改查时,经常会遇到这样的情况,在写条件语句where时,可能会同时有多个条件的“或”或者“与”,但用法不当经常会达不到效果,经过尝试,本人发现一个where语句中同时出现条件的“与”或者“或的时候”,要将多个OR用小括号括起来再和AND进行“与”,或者将多个AND用小括号括起来再与OR进行“或”。
尽管看到问题年代有点久远,但我觉得有必要纠正一下:
在表结构中,username 字段类型为varchar 即字符串型,而非整数型
那么查询语句,用到username = *** 时,必须写成 username ='***' ,比如: username = '0',再比如 username = 'admin'
而如果写成 username = 0呢? 0是一个整数型,那么
数据库中username字段的数据类型会被强制转化为整型,然后再与0进行匹配.即 admin会转化为0 (因为是a开头,而非数字开头),同理,test也会转为0, 再比如110test会转化为110,再比如 0admin会转化为0 ....
再看我的图片1的例子:
select username from t_user where username = 0-- 图片左边的结果
select username from t_user -- 图片右边的结果
再看我的图片2的例子:
select username from t_user where username =4241101
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)