本帖最后由 qq775862807 于 2014-11-08 16:26:29 编辑

解决方案 »

  1.   

    试一下下面的sql,可能是字段bid的varchar类型select * from t_book where 1=1 and bid = ‘1’ 
      

  2.   

    这样不报错了,但是查不到数据,只有完全与bid相符合才能查出来,如果只是查bid = '1',里面有1开头的数据查不出来的。。
      

  3.   

    这样不报错了,但是查不到数据,只有完全与bid相符合才能查出来,如果只是查bid = '1',里面有1开头的数据查不出来的。。
    改成这样的,查询以1开头的数据select * from t_book where 1=1 and bid  like  ‘1%’ 
      

  4.   

    这样不报错了,但是查不到数据,只有完全与bid相符合才能查出来,如果只是查bid = '1',里面有1开头的数据查不出来的。。
    改成这样的,查询以1开头的数据select * from t_book where 1=1 and bid  like  ‘1%’ 

    我现在想查询的是 bid = 1  它能查询出来一个1开头的数据,比如select * from t_book where 1=1 and bid = 1 能查出1A15DC5E8A014A58862ED741D579B530这样一条数据
      

  5.   

    这样不报错了,但是查不到数据,只有完全与bid相符合才能查出来,如果只是查bid = '1',里面有1开头的数据查不出来的。。
    改成这样的,查询以1开头的数据select * from t_book where 1=1 and bid  like  ‘1%’ 

    我现在想查询的是 bid = 1  它能查询出来一个1开头的数据,比如select * from t_book where 1=1 and bid = 1 能查出1A15DC5E8A014A58862ED741D579B530这样一条数据
    上面的已写过,重复写一下。select * from t_book where 1=1 and bid  like  ‘1%’ 
      

  6.   

    这样不报错了,但是查不到数据,只有完全与bid相符合才能查出来,如果只是查bid = '1',里面有1开头的数据查不出来的。。
    改成这样的,查询以1开头的数据select * from t_book where 1=1 and bid  like  ‘1%’ 

    我现在想查询的是 bid = 1  它能查询出来一个1开头的数据,比如select * from t_book where 1=1 and bid = 1 能查出1A15DC5E8A014A58862ED741D579B530这样一条数据
    但是在SQLserver2008中它是会报varchar 值 '1A15DC5E8A014A58862ED741D579B530' 转换成数据类型 int 时失败,但是同样一条语句在MySQL中却不会报错,这是为什么呢?
      

  7.   

    其实 条件中1=1可以去掉的。
    可能你写的是动态sql,拼接而成。
      

  8.   

    这样不报错了,但是查不到数据,只有完全与bid相符合才能查出来,如果只是查bid = '1',里面有1开头的数据查不出来的。。
    改成这样的,查询以1开头的数据select * from t_book where 1=1 and bid  like  ‘1%’ 

    我现在想查询的是 bid = 1  它能查询出来一个1开头的数据,比如select * from t_book where 1=1 and bid = 1 能查出1A15DC5E8A014A58862ED741D579B530这样一条数据
    但是在SQLserver2008中它是会报varchar 值 '1A15DC5E8A014A58862ED741D579B530' 转换成数据类型 int 时失败,但是同样一条语句在MySQL中却不会报错,这是为什么呢?

     '1A15DC5E8A014A58862ED741D579B530' 不是数字字符,转换Int时肯定会出错。
    mysql的转换机制不太了解,但是应该差不多,也会报错的。
      

  9.   

    这样不报错了,但是查不到数据,只有完全与bid相符合才能查出来,如果只是查bid = '1',里面有1开头的数据查不出来的。。
    改成这样的,查询以1开头的数据select * from t_book where 1=1 and bid  like  ‘1%’ 

    我现在想查询的是 bid = 1  它能查询出来一个1开头的数据,比如select * from t_book where 1=1 and bid = 1 能查出1A15DC5E8A014A58862ED741D579B530这样一条数据
    但是在SQLserver2008中它是会报varchar 值 '1A15DC5E8A014A58862ED741D579B530' 转换成数据类型 int 时失败,但是同样一条语句在MySQL中却不会报错,这是为什么呢?

     '1A15DC5E8A014A58862ED741D579B530' 不是数字字符,转换Int时肯定会出错。
    mysql的转换机制不太了解,但是应该差不多,也会报错的。
    额·······我试了,MySQL没报错······
      

  10.   

    这样不报错了,但是查不到数据,只有完全与bid相符合才能查出来,如果只是查bid = '1',里面有1开头的数据查不出来的。。
    改成这样的,查询以1开头的数据select * from t_book where 1=1 and bid  like  ‘1%’ 

    我现在想查询的是 bid = 1  它能查询出来一个1开头的数据,比如select * from t_book where 1=1 and bid = 1 能查出1A15DC5E8A014A58862ED741D579B530这样一条数据
    但是在SQLserver2008中它是会报varchar 值 '1A15DC5E8A014A58862ED741D579B530' 转换成数据类型 int 时失败,但是同样一条语句在MySQL中却不会报错,这是为什么呢?

     '1A15DC5E8A014A58862ED741D579B530' 不是数字字符,转换Int时肯定会出错。
    mysql的转换机制不太了解,但是应该差不多,也会报错的。
    额·······我试了,MySQL没报错······
    还查出来了·····