暂无图片
mysql主键等于一个随机数的 查询出来两条数据
我来答
分享
StartupForce
2020-11-18
mysql主键等于一个随机数的 查询出来两条数据

sysbench测试生成的表sbtest1,主键为id列,以下查询返回了两行数据,怎么回事,难道随机数返回多,成了in表达式?

mysql> select id,k,c,pad from sbtest1 where id=round(1+rand()*10000000); +---------+---------+-------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------+ | id | k | c | pad | +---------+---------+-------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------+ | 2898778 | 5028649 | 46962879307-12528096878-98533271975-28588894546-89347604371-19950165403-76306205107-40316135032-44372394143-89198007136 | 99652023711-77989728125-60857111039-43729275867-39065311690 | | 5880059 | 4325123 | 64531747760-63415903997-13051684140-84404429789-21701326784-38596788914-13518889645-16369987468-69025001759-63770817627 | 49533924409-06736919496-87250632017-19533775297-00877260384 | +---------+---------+-------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------+ 2 rows in set (9.12 sec) mysql> show create table sbtest1\G; *************************** 1. row *************************** Table: sbtest1 Create Table: CREATE TABLE `sbtest1` ( `id` int NOT NULL AUTO_INCREMENT, `k` int NOT NULL DEFAULT '0', `c` char(120) NOT NULL DEFAULT '', `pad` char(60) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `k_1` (`k`) ) ENGINE=InnoDB AUTO_INCREMENT=10000007 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 1 row in set (0.00 sec) ERROR: No query specified
我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
Cui Hulong

这个问题大致测试一下。确定跟rand函数有关系。
传进去的不是结构集,是rand函数。(需要源码debug执行过程,后续有结果共享)

暂无图片 评论
暂无图片 有用 0
StartupForce

有人说是不确定性函数的问题,会全表扫描,对于每刚行数据都执行rand函数,匹配就返回,所以返回多个。这样说能理解,但是感觉就是不符合语意,oracle就只返回一行

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏