Mysql中使用rand函数做子查询结果,查询结果应该只有一条但是返回了多条

使用的sql如下
SELECT * FROM doctor_info
where list_id = CEILING((SELECT RAND() * MAX(list_id) FROM doctor_info));
查询的结果按理说应该只有一个的,但是有时候返回空值,有时候返回好几个值
求解!!!!

2个回答

你每次得到的list_id都是随机的吧,一个随机数×你表里的id得到的可能是一个不是表里存在的id,所以你有的时候会得到空的值,有时候可以得值,但是返回多个值的问题应该没有吧

weixin_39401488
weixin_39401488 返回空值是可以理解的,但是返回多个值的情况也有出现,而且频率不低,直接查询ceiling后面的内容是只有一个返回内容的,所以就很奇怪
大约一年之前 回复

你把子查询该下 改为 select (rand()*max(list_id)) as id from doctor 试试

weixin_39401488
weixin_39401488 加上as 也没有用,还是会出现多个值,语法来看应该是只有单值的,出现多个值真的奇怪
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!