我在设计数据库的时候,定义一张表的主键为id 类型varchar 长度为25 为当前时间+随机码生成的一串数字;
但是在查询的时候有:比如 select * from table where id = 201008171424530375 这个数字就出不来结果非要改成select * from table where id = '201008171424530375' 但是我的主键都是通过程序生成的,不是所有的结果都会这样,其他的很多类似 select * from table where id = 201008171424530376 这样的查询不用''都是可以找到结果的,请问这是什么原因造成的?
mysql的数据库值问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
9条回答 默认 最新
- 「已注销」 2010-08-17 16:10关注
[quote]飞雪无情 写道
就是你的in里有10个id,都没有加引号,比如 in(123,1231,34234,4545,346436,....),然后结果出来九条是吧?难道是in函数认为前面的九个条件可以加引号,也可以不加,只是最后一个比较的时候因为没加引号所以查询不到了。。哈哈 你的这种想法我也想到了,我单独的改变了IN里面的顺序,起结果还真就是那个楼市找不到,不管它排第几,当然咯这里只是用楼市来调试 [/quote]
随便改变顺序还是楼市。。嘿嘿。我观察了,你的楼市的id是最小的,也就是第一个数据。。估计就是因为这,谁是第一个数据谁倒霉,别管inli的id顺序,就查不到第一个。。嘿嘿
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报