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后面的内容是只有一个返回内容的,所以就很奇怪
12 个月之前 回复

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

weixin_39401488
weixin_39401488 加上as 也没有用,还是会出现多个值,语法来看应该是只有单值的,出现多个值真的奇怪
12 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
为什么查询只返回了一条结果
[code=Java][/code]PreparedStatement statement=connect.conn.prepareStatement("select title,content from news");rn ResultSet result=statement.executeQuery();rn ArrayList list=new ArrayList();rn while(result.next())rn NewsBean bean=new NewsBean();rn bean.setTitle(result.getString("title"));rn bean.setContent(result.getString("content"));rn list.add(bean);rn System.out.println("abc");rn rn System.out.println(list.size());rn for(int i=0;i
mysql 查询多条随机结果
三个字段:id name probabilityrnprobability初始默认全是1rnrnprobability值越大,随机出来的概率越高。rnrnselect * from kzmod_mapchoose order by probability*(SELECT FLOOR( MAX(probability) * RAND()) FROM kzmod_mapchoose ) desc limit 8;rnrn我改了一条数据的值为10,它就一直都出现了。。rn怎么改进?还有就是,怎样知道概率值大于平均值多少时,这条数据会百分百出现?
mysql 删除子查询的结果
我想用如下语句删除查询结果,但是报错rn错误如下:#1093 - You can't specify target table 'jo_sourcedata' for update in FROM clausern[code=SQL]rndelete from sourcedata where exists(select * from sourcedata js where js.item_type=2 and not exists (select * from person jp where jp.per_id = js.item_id ))rn[/code]rnrn我又想到用,如下的语句,但是也出现语法错误rn[code=SQL]rndelete from sourcedata where id in (select js.id from sourcedata js where js.item_type=2 and not exists (select * from person jp where jp.per_id = js.item_id)rn[/code]rnrn请帮忙看看用什么语句才能删除查询出来的结果,查询出来的结果有(10万多条),我想在phpmyadmin的sql里运行。谢谢。
mysql update更新子查询结果
UPDATE mem_user_yun_temp t1 ,mem_user_temp t2 SET t1.ralation_id = t2.id ,t1.ralation_memberid = t2.memberid ,t1.login_name = t2.login_name where t1.id = t2.tempid; UPDATE ( SELECT tt.* from yun_trus...
mysql查询时有两条一模一样的结果应该只显示一条
场景:使用左连接关联查询时,发现查询的结果中有两条一模一样的数据,因此,需要对查询结果去重。 解决方案:在具有唯一索引的字段前加上DISTINCT关键字即可。 在加关键字之前的SQL: SELECT a.order_id,a.user_id,a.biz_price,a.start_effect,a.end_effect,a.order_type, a.pay_time,...
mysql 查询多条结果,合并成一个结果,使用 group_concat()函数
开始查询的结果sql SELECT EMPLOYEE_NAME FROM MST_EMPLOYEE EM JOIN P_PROEMPLOYEE PRO ON PRO.PE_EID = EM.EMPLOYEE_ID AND EM.EMPLOYEE_DELFLG = '1'  AND EM.EMPLOYEE_STATUSID 使用group_concat()函数查询修改后的结果
mybatis查询结果和mysql的查询结果不一样
我只想查询userName和userAge,结果user类的所有属性都跑出来了....![![图片说明](https://img-ask.csdn.net/upload/201710/11/1507707452_948210.png)图片说明](https://img-ask.csdn.net/upload/201710/11/1507707444_946196.png)
多条sql查询结果拼接
SELECT (SELECT COLUMN FROM T1 ) AS C1,(SELECT COLUMN FROM T2 ) AS C2 FROM SYSIBM.SYSDUMMY1
e.ToolTipText显示多条查询结果
[code=C#]rnfor (int i = 0; i < table.Rows.Count; i++)rn rn Userrows = table.Rows[i];rn string nr = Userrows[1].ToString().Trim();rn string sj = Userrows[2].ToString().Trim();rn e.ToolTipText = "订 单 号:" + ddh.ToString() + "\r\n中文姓名:" + xm.ToString() + "\r\n短信内容:" + nr.ToString() + "\r\n接收时间:" + sj.ToString();rn rn[/code]rn这个只能实现显示最后1条,请问我想多条该怎么写?
显示多条查询结果的问题
我用SQL SERVER来实现数据库,在执行完查询命令后,如何使用EDIT或COMBOBOX来显示查询的结果呢?我的想法是在EDIT或COMBOBOX中显示名称,其余的在EDIT中显示,利用前翻和后翻按钮来查看结果。不知道该怎么实现,请大侠们多多指教!
请问怎么在查询结果中加入子查询的结果
比如我可以这样:rnSELECT Name, Age, (SELECT NameFROM TABLE_A) FROM TABLE_Brn这样就可以获得一个3列的结果rn但是如果我的子查询的结果超过一列的话,比如rnSELECT Name, Age, (SELECT Name, Age FROM TABLE_A) FROM TABLE_Brn就不行了,有没有什么办法能实现把子查询加入到外面的查询结果中。
mysql的查询结果中自增
请问mysql中如何使在查询结果中新增一列自增的记录集,他是从零开始自增的,每次自增1 的,请各位帮帮忙,很急···········小弟在此感激不尽
mysql中的rand函数
在mysql中,rand函数用于产生0(包含)到1(不包含)的随机数, rand有两种形式: 1、rand(),即无参数的,此时产生的随机数是随机的,不可重复的; 2、rand(n),即有参数数,如rand(2),相当于指定随机数生产的种子,那么这种情况产生的随机数是可重复的。 对于第一种情况,大家好理解,针对第二种情况,下面给出个例子: 1、建表 create table
mysql合并查询结果
mysql合并查询结果
Mysql查询结果的问题
有这样一个表rnID TIME NAMErn1 XXXX-XX-XX HH:DD:SS 张三rn2 XXXX-XX-XX HH:DD:SS 张三rn3 XXXX-XX-XX HH:DD:SS 李四rn4 XXXX-XX-XX HH:DD:SS SBrn5 XXXX-XX-XX HH:DD:SS SBrn6 XXXX-XX-XX HH:DD:SS 小张rn7 XXXX-XX-XX HH:DD:SS 张三rn8 XXXX-XX-XX HH:DD:SS 张三rnrnID表示PRIMARY KEYrnTIME表示迟到时间,上面的8条记录都是不同的时间rnNAME表示迟到人的人名rnrn我最后想得到的结果是rnNAME 次数rn张三 4rnSB 2rn小张 1rn李四 1rn请问怎么写SQL语句啊,谢谢大家rn
MYSQL查询结果排序
rn字段:name、timern条件:rn1.select * from table 查询结果按照time降序排列。rn2.time相同的结果,按照name降序排列。rn谢谢
奇怪的查询结果(mysql)
奇怪的查询结果 rn我在win200 pro下 rnmyslq for win rnresin2.0 rnjsp程序查询 rnselect * from goods where goodsname like '%百%' rn如果是odbc驱动 后台是sql server rn查询是结果是正常正确的  rn但如果用mysql rn则查询的结果与实际的一点也不同 rn它显示出来是的与where 中条件一点也相符呀 rn真是不解呀 rn
mysql导出查询结果
mysql&gt; pager cat &gt; /tmp/test.txt //设置导出到文件 PAGER set to 'cat &gt; /tmp/test.txt' //这一行是自动出来的以后查询的结果都会跑到上面的文件里去 mysql&gt; select ...... 18681 rows in set (0.64 sec)//执行查询是不会在界面出现结果的,结果在文件里 root@py07:~# ...
mysql查询结果错误
[code=sql]select count(playerId) from log_login where week(loginTime)=week(NOW()) and week(loginTime)=week(NOW())-2;[/code]rn这一条sql有错么?rn我是查询在前两个星期登录的人,在本星期也登录了的人数。rnloginTime是登录的时间,我看了的明明有这样的数据。但是查出来之后是0.rn别让我贴数据库结构,太多。就看这条sql有没有错。rn我该怎么改啊?
MySQL 查询结果替换
MySQL 查询结果替换 在开发中,我们可能会遇到一个问题,就是,在数据库中存1、0但是查询出来必须是男、女(或特定字符)。 通常,有两种方法(后台)。 1. 比较常用的字典表方法 在数据库中专门创建一个table,结构如下 id dic_code dic_name code_index index_name_cn 1 sex 性别 0 女 2 sex 性别 1 男 然后再...
mysql 查询结果不正确
mysql 数字和字符串比较导致查询结果不正确
MYSQL之合并查询结果
本文主要介绍一些关于合并查询结果和如何为表和字段取别名。 CREATE TABLE `t_book` ( `id` int(11) NOT NULL AUTO_INCREMENT, `bookName` varchar(20) DEFAULT NULL, `price` decimal(6,2) DEFAULT NULL, `author` varchar(20) DEFAULT
mysql 导出查询结果
在实际的工作中,我们常需要导出一些sql查询条件下的数据为文件提供给运营和产品,有如下几种导出方式可供选择
Mysql查询结果补零
1、这里记录下Mysql补零的方法 2、select lpad(IdcardNo,8,0) from user; 3、这里就是查询user表中的ID卡号,不足8位的补零   也欢迎登录我的个人网站,里面有更多的文章及技术咨询在等你:http://www.guangmuhua.com...
mysql查询不出结果
本地模糊查询没有问题,但是,上传到服务器上面 !一个搜索的功能就不能使用了!一直找不出什么原因,郁闷啊。哪位高人帮帮我啊!我本地字符集rnVariable_name Valuerncharacter_set_client utf8rncharacter_set_connection utf8rncharacter_set_database utf8rncharacter_set_filesystem binaryrncharacter_set_results utf8rncharacter_set_server latin1rncharacter_set_system utf8rncharacter_sets_dir d:\wamp\bin\mysql\mysql5.0.51b\share\charsets\rnrn服务器上面的rnrnVariable_name Value rncharacter_set_client latin1 rncharacter_set_connection utf8 rncharacter_set_database utf8 rncharacter_set_filesystem binary rncharacter_set_results latin1 rncharacter_set_server latin1 rncharacter_set_system utf8 rncharacter_sets_dir /usr/share/mysql/charsets/ rnrn到底是什么原因啊 查询的sql语句是 rnselect * from zhaop where 1=1 and zpd like '%武汉%' order by zpp asc, id descrnrn连接数据库的时候已经指明 mysql_query("set names utf8");rn 但是最后还是查询不出来,直接用phpmyAdmin执行sql也查询不出!,本人在线等。谢谢大家帮我解决下啊rnrnrn
mysql查询结果编号
问题描述项目有这样的需求:需要给每条数据进行编号然后导出excel,处理这个问题有两种方法:(1) 遍历数据库查询结果,对每一个查询结果进行编号; (2) 直接在mysql里面对数据进行编号;解决办法分析第一种在java中进行编号,数据量小的时候不影响系统性能,如果数据量变大,遍历一次可能就会影响用户体验。个人比较偏向于第二种解决办法,具体mysql语句如下:SELECT @row := @row
Mysql查询结果乱码
现象:使用mysql执行select命令后查到的结果如果含有汉字时会出现乱码,如下: 解决方法: 1、使用mysql -u用户名 -p密码命令登录MYSQL 2、执行show variables like 'character%;'获取字符集配置 3、修改/etc/mysql/my.cnf的文件,加入以下内容并保存 [mysql] default-character-set=ut...
mysql查询结果合并
请问个问题:如果有一张book表,怎么实现在分页查询book表结果的基础上追加一个统计book表所有记录条数的字段呢rnrn因为想一次实现分页查询后同时获得总的条数,用于计算总的页数。
mysql查询结果保留两位小数
TRUNCATE TRUNCATE(x,d):函数返回被舍去至小数点后d位的数字x。若d的值为0,则结果不带有小数点或不带有小数部分。若d设为负数,则截去(归零)x小数点左起第d位开始后面所有低位的值。 SELECT TRUNCATE(100.3465,2),TRUNCATE(100,2),TRUNCATE(0.6,2),TRUNCATE(114.6,-1); 结果分别:100.34,100,0...
MySQL——合并查询结果
    利用  UNION 关键字,可以给出多条  SELECT  语句,并将它们的结果组合成一个结果集。合并时,两个表对应的列数和数据类型必须相同。SELECT 语句之间使用  UNION  或  UNION  ALL 关键字分隔。不使用关键字 ALL,执行的时候会删除重复的记录,所有返回的行都是唯一的;使用关键宇  ALL  的作用是不删除重复行也不对结果进行自动排序。    基本的语法格式如...
[mysql]导出查询结果
./mysql -upim_w -ppim_dianxin2011 -h 10.18.102.103 --port 8066 -e 'select id,userId from pimaccountdevice group by userId;' &gt; ~/users.txt
关于MySQL的查询结果
代码如下:rn$sql = "select count(*) from admin";rn$result = mysql_query($sql);rn$num=mysql_num_rows($result);rnecho $num;rn为什么不管我的记录有多少条,都是输出1,rn我想输出查询的结果,应该怎么修改?
在相关子查询中,父查询如何获得子查询的结果
使用相关子查询,来查找所有其薪水多于他所在部门的平均薪水的雇员,显示名字、部门号和部门的平均薪水,按平均薪水排序。rn这里的emp表 是Oracle自带的那个表,rnrn这个事使用其他方法的答案rnSelect e1.ename,e1.deptno,e1.sal,e2.avgsalrnFrom emp e1,(Select deptno, Avg(sal) avgsal From emp Group By deptno)e2rnWhere e1.deptno=e2.deptnorn And e1.sal>e2.avgsalrn而使用相关子查询rnSelect e.ename,deptnornFrom emp ernWhere exist sal>(Select Avg(sal)From emp Where deptno=e.deptno And e.sal>Avg(sal));rn这里我就没法获得部门的平均薪水,请问大神们类此这样的问题,父查询语句怎样获得子查询的结果呢
MySQL的bug:子查询中使用rand(),上层查询中rand()的值被重算
  在使用mysql的过程中,发现了一个神奇的bug。   mysql语句如下: select random_val from (select floor(rand()*10) as random_val from Test) b where b.random_val &amp;lt;3;   其中,Test表是个无关轻重的表(毕竟并没有从里面取数据,只是得到的结果跟Test内的数据条数有关),...
MySQL查询之合并查询结果
本教程从基础的MySQL开始介绍,到SQLServer,然后Oracle,让学员能够从易到难,从Java或PHP语言到.Net数据库的灵活使用。其中分库介绍了,各个数据库的基本独立使用,以及各自的安装和配置。课程中主要是以SQL脚本为基础同时介绍非常实用性的脚本使用。例如:层次化查询,正则表达式以及技巧性函数等等。
mysql的SUM函数结果
新项目在设计数据库字段时将部分存储数字的字段设计成字符串格式,开发环境和测试环境都没有出问题,但在发布到生产环境上时出现格式转换错误。 查询日志发现是字符串格式的数字进行加运算时出现的格式转换错误:Integer.valueof,测试发现是数据查询的结果存在0.0数据,怀疑是对该字段执行的SUM操作导致。 对该字段进行直接查询,结果没有小数,因此将问题定位为sql语句对字符串类型的字段进行的SUM...
求证一条SQL的查询结果
[code=SQL]SELECT top(1) FROM 男人们 WHERE 存款>100万 and 未婚=true and 同性恋=false and 有房=true and 有车=true and 条件in (细心,温柔,体贴,会做家务,会做饭,会逛街买东西,会浪漫,可爱,帅气,绅士,大度,气质,智慧,最好还能带孩子) 年龄 between 20 and 25 and 进取心=one Order by存款 Desc[/code]
查询结果拼成一条字符串
查询结果拼成一条字符串     select replace(WMSYS.WM_CONCAT(site_id),',',',') from  t_business_056_website where intermodal_id='D2D7D6347695BBF6E040007F010074D6'
多条数据结果和成一条数据 wm_concat()
Oracle数据库   wm_concat  一 使用场景 我们要把开发部合并成一条信息显示在页面上  代码如下 select wm_concat(t.姓名) from dual t group by '部门' 这样就能合并成条数据  ...
多条结果根据条件组合成一条
数据库版本 rn5.1.41-community MySQL Community Server (GPL)rnrn数据库结构及测试数据如下rn[code=SQL]DROP TABLE IF EXISTS `gout`;rnCREATE TABLE IF NOT EXISTS `gout` (rn `id` int(6) NOT NULL AUTO_INCREMENT,rn `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,rn `desc` varchar(200) DEFAULT NULL,rn PRIMARY KEY (`id`)rn) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;rnrnDROP TABLE IF EXISTS `goods`;rnCREATE TABLE IF NOT EXISTS `goods` (rn `id` int(5) NOT NULL AUTO_INCREMENT,rn `out_id` int(6) NOT NULL DEFAULT '0',rn `name` varchar(50) CHARACTER SET gbk NOT NULL,rn `qty` int(3) NOT NULL DEFAULT '0',rn `wgt` decimal(7,4) NOT NULL DEFAULT '0.0000',rn PRIMARY KEY (`id`),rn KEY `out_id` (`out_id`)rn) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;rnrnALTER TABLE `goods` ADD CONSTRAINT `goods_barcode_ibfk_8` FOREIGN KEY (`out_id`) REFERENCES `gout` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;rnrnINSERT INTO `gout` (`id`, `date`, `desc`) VALUESrn(1, '2010-04-09 00:00:00', NULL),rn(2, '2010-04-20 00:00:00', NULL),rn(3, '2010-04-25 00:00:00', NULL);rnrnINSERT INTO `goods`(`id`,`out_id`,`name`,`qty`,`wgt`) VALUESrn(1, 1, '张三', 12, 5.6785),rn(2, 1, '张三', 12, 5.2350),rn(3, 1, '张三', 12, 5.8245),rn(4, 1, '张三', 5, 2.5489),rn(5, 2, '关二', 12, 8.5486),rn(6, 2, '关二', 12, 8.4578),rn(7, 2, '关二', 12, 8.5984),rn(8, 2, '张三', 12, 5.5425),rn(9, 2, '张三', 12, 5.4785),rn(10, 2, '张三', 8, 3.9785),rn(11, 3, '刘大', 12, 10.5470),rn(12, 3, '关二', 12, 8.9542),rn(13, 3, '张三', 12, 5.5553),rn(14, 3, '张三', 12, 5.2458);[/code]rnrn期望结果rn+----+---------------------+---------+------+------+------------------+rn| id | [color=#FFFFFF]________[/color]date[color=#FFFFFF]_______[/color] | [color=#FFFFFF]__[/color]swgt[color=#FFFFFF]_[/color] | sqty | desc | [color=#FFFFFF]_____[/color]name[color=#FFFFFF]_______[/color] |rn+----+---------------------+---------+------+------+------------------+rn| [color=#FFFFFF]_[/color]1 | 2010-04-09 00:00:00 | 19.2869 | [color=#FFFFFF]_[/color]41[color=#FFFFFF]_[/color] | NULL | 张三[color=#FFFFFF]____________[/color] |rn| [color=#FFFFFF]_[/color]2 | 2010-04-20 00:00:00 | 40.6043 | [color=#FFFFFF]_[/color]68[color=#FFFFFF]_[/color] | NULL | 关二,张三[color=#FFFFFF]______[/color] |rn| [color=#FFFFFF]_[/color]3 | 2010-04-25 00:00:00 | 30.3023 | [color=#FFFFFF]_[/color]48[color=#FFFFFF]_[/color] | NULL | 刘大,关二,张三 |rn+----+---------------------+---------+------+------+------------------+rnrn本来是想通过类似rn[code=SQL]select gout.id,date,sum(wgt) as swgt,sum(qty) as sqty,gout.desc,name from goods,gout where out_id = gout.id group by gout.id,name;[/code]rn这样的语句查询出所有名称,然后再在PHP中根据gout.id组合成二维数组rn但因为还需要使用 LIMIT 进行分页,所以用上面这语句就会使分页不准确了...不知道有没有什么别的方法能得到期望结果
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数