为什么 使用等号匹配字符串的时候 会出现模糊匹配的结果 
比如说 where ID = '1234' 结果却出现 ID
1234-1
1234-2
请大侠们嘴下莫留情 
尽管指点

解决方案 »

  1.   

    常理来说是不可能的,估计你的表有某些东西,可能触发器等所引起的。CREATE TABLE TB(id VARCHAR(10) )
     INSERT INTO TB
     SELECT '1234-1'
     UNION ALL 
     SELECT '1234-2'
     UNION ALL 
     SELECT '1234'
     
     
     SELECT * FROM TB
     WHERE id='1234'
     
     /*
     id
     ----------
     1234
     
     (1 行受影响)
     
     */
      

  2.   

    不是吧 where ID = '1234'  你还能模糊查出来其余的
    把你代码贴出来吧
      

  3.   

    我坦白 其实我不是在sql的管理工具上查询的 
    是一款软件 里面有一个可以自定义查询条件的功能 
    我可以在软件提供的 where的框里 填写自己想要查询的条件 
    然后生成一个按钮 
    然后一按那个按钮就可以直接显示刚刚自己定义的查询条件的结果 
    然后 就是我刚才说的情况 我用sql的管理工具 测试倒是正常
    说明我人没问题!!!
      

  4.   

    一般工具的查询都是模糊查询,甚至是%字符串%这样的模糊。你要想确认,可以使用sql profiler来监控,然后你再操作一下,就可以抓出语句,如无意外最少是like 'xx%'这样的语句。