您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

sqlserver 中guid 类型表字段查询导致的问题

bubuko 2022/1/25 18:59:47 sqlserver 字数 954 阅读 919 来源 http://www.bubuko.com/infolist-5-1.html

现象: 1 sqlserver 有表a, 有id 和parentid两个字段。 id为uniqueidentifier 类型,即guid类型。默认值为newsequentialid() 。 parentid为字符串类型。 2 a表数据为 id值为6c75c497-76e8-eb11-9d5d-604 ...

现象:
1 sqlserver 有表a, 有id 和parentid两个字段。 id为uniqueidentifier 类型,即guid类型。默认值为newsequentialid() 。 parentid为字符串类型。

2 a表数据为 id值为6c75c497-76e8-eb11-9d5d-6045cba80309 。parentid值6c75c497-76e8-eb11-9d5d-6045cba803097 (parentid的值比id的值多了一个7)

3 注意guid的值 执行语句 select * from a where id=‘6c75c497-76e8-eb11-9d5d-6045cba80309ppppppppppppp7‘ 可以查询出记录
执行 select * from a where parentid=‘6c75c497-76e8-eb11-9d5d-6045cba803097‘ 可以查询出记录
执行 select * from a where parentid=‘6c75c497-76e8-eb11-9d5d-6045cba80309‘ 可以查询出记录

4 可以看出来sqlserver执行查询的时候,对于guid类型的字段,会自动截取固定长度,然后再查询。比如你的guid的字符串输错了,变成37位,只要你前32位正确,依然可以查出结果。
字符串类型的字段,就不会如此,会按完全匹配来查询。

sqlserver 中guid 类型表字段查询导致的问题

原文:https://www.cnblogs.com/wang2650/p/15038864.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶