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

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

0

2个回答

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

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

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

0
weixin_39401488
weixin_39401488 加上as 也没有用,还是会出现多个值,语法来看应该是只有单值的,出现多个值真的奇怪
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于ssm-mysql返回List,但是结果只有一条数据
今天在写东西的时候,发现了这样的一个问题:写的sql语句没有问题,在mysql中查出来也是3条数据,但是最后在项目中现实出来的时候却只有一条数据,检查半天发现不了问题,最后翻看了些博客,最后找到问题的所在,在这里记录一下。这里是我开始写的sql,查询出来是3条数据没错,包括在控制器中输出的数据条数也是三条但是最后在项目显示中却只有一条。所以很纳闷,一般的问题我都查看了一遍,基本不会有问题。最后我发...
mysql 查询多条结果,合并成一个结果,使用 group_concat()函数
开始查询的结果sqlrnSELECT EMPLOYEE_NAME FROM MST_EMPLOYEE EM JOIN P_PROEMPLOYEE PRO ON PRO.PE_EID = EM.EMPLOYEE_ID AND EM.EMPLOYEE_DELFLG = '1' rnrnrnAND EM.EMPLOYEE_STATUSID rnrnrn使用group_concat()函数查询修改后的结果
关于postgres一条sql语句中子查询的返回值不止一个,且拼接成相关规则的字符串
这个问题之前好像碰到过,后来分成两次查询,最后把相关数据有拼接了一下,当时算是蒙混过关了。n但是古语有云:自己挖的坑,含着泪也要给填了。n这次有碰到这个问题,但是不想还查两遍了,就查阅相关资料把它解决了~!n相关代码,后补......
mybatis 关联查询原本返回数组,结果只返回了第一条数据怎么办?
今天出了一个小问题,就是在MyBatis数据库中查询一组数据,原本应该返回的是一组List<entity>类型的一组数据,但是调用接口之后只返回了第一跳查询数据。当时修改了resultMap、parameterType还有实体类等等都没搞定。最后才发现,原来是再查询语句中返回值没有携带返回数组实体类的id字段。所以....只要再select查询语句返回值里添加对应的实体类id就可以搞定...
mysql中子查询有多个结果返回怎么处理
问题nn在查询的时候,有时候经常需要用到子查询,比如查询今天的订单数量, 7天的订单数量,31天的订单数量, 这种条件不一样,但是非要整在一个表中来显示就需要很多子查询来实现了:nnselect(select xx from xx where 条件一) as 结果一,nselect(select xx from xx where 条件二) as 结果二,nselect(select xx from...
13.子查询返回多行多列的数据
假设有下面两张表:n部门表deptnnn雇员表empnnnnn        列出公司各个部门的经理的姓名、薪金、部门名称、部门人数、部门平均工资。n步骤1:查找每个部门经理的姓名和薪金。nselect ename,sal from emp where job='MANAGER';nnn步骤2:连接dept表,查询部门名称。nselect e.ename,e.sal,
mysql中的只想得到一个结果,实际上返回多个的问题
expect 1,actual 多个。因为自己的参数的值是null,导致去数据库中找匹配数据的时候,把很多数据都取出来了。
PostgresSQL将多条子查询的统计结果作为查询结果
SELECTnn (SELECT COUNT (*) FROM d_info WHERE type = 0) AS common_total_count, --0普通总数nn (SELECT COUNT (*) FROM d_info WHERE type = 0 AND status = 0) AS common_offline_count,...
list查询只返回一条数据
我还在继续写博客,我一直没放弃我的项目n今天写一个前端页面显示最近评论动态的面板nnnnnnimage.pngnn长这个样子,我调用查询语句n在数据库端能查询出5条数据,但是在程序里面的list只有一条返回值,同时控制台显示有2条返回数据nnnnnn1nn开始我以为是映射的问题,自己又手写了一个,结果还是一样,百度一下就找到原因了,是主键问题,n S...
关联查询 -单行子查询返回多列
例1:select * from table1 where id =(select id from table1);nn由于子查询结果中有多行,但是where条件id = 只能有一行记录nn例2: select (select name from emp where a.job = b.job) from empnn由于 子查询的结果是多列 但是select 应该选择 其中一列nn nn nn n...
Mybatis一对多或多对多只能查出一条数据解决策略
n<resultMap id="menuModelMap" type="com.yyzq.springboot.model.MenuModel" >n <id column="id" property="id" jdbcType="BIGINT" />n <result column="menuname" prope
mysql 子查询in,返回结果集合失败
nSELECTn *n FROMn station_quality_detail_info qan INNER JOIN station_info sinfo on qa.station_info_id = sinfo.id n WHERE FIND_IN_SET(sinfo.serial_no,(#{stationIds}))nn假设stationIds为1,2 查询只会查询出一条...
mybatis查询多条记录只返回最后一条记录
可以按照以下思路去解决:nn1.选择使用别名nnsql语句查出来的列,不要有相同的column_name.这样的话,mybatis可能无法映射.nn2.resultMap里应该有个唯一标识,<id/>nnresult会使用id来放置结果集,如果id相同(包括都没有id),那么会被覆盖.nn不必修改java类,只使用<id column="carid"/>,没有propert...
MySql查询返回多条数据多列合并
最近帮人做了一个成绩单打印的功能,需要在成绩单上打印出成绩划分等级和具体的成绩范围,左思右想~~~在一条SQL搞定和循环多条记录拼接之间徘徊,由于时间匆忙,还是选择了简单的查询、循环、拼接。但是还是不甘心,赶紧那样做太low。于是乎,事后继续研究。nn数据库中数据存格式如下:nn成绩等级:nnnn nn等级(point_grade)对应的数据字典:nnnn最终要实现的效果:nnnn先是百度各种拼接...
MySQL的bug:子查询中使用rand(),上层查询中rand()的值被重算
  在使用mysql的过程中,发现了一个神奇的bug。nn  mysql语句如下:nnnselect random_val from (select floor(rand()*10) as random_val from Test) b where b.random_val <3;nn  其中,Test表是个无关轻重的表(毕竟并没有从里面取数据,只是得到的结果跟Test内的数据条数有关),...
Mybatis查询到多条记录但是映射到list集合只有一条或者条数不对
如果你出现了这个问题。n n *. 原因:mybatis是基于当前实体对象的id进行映射的n n *.所以在查询字段中加上查询id即可。n n 搞定!!!!
mybatis association会出现覆盖记录 导致只返回最后一条记录
开始封装的返回类: nnnpackage com.mpn.dto;nnimport com.mpn.model.TUser;nnpublic class TUserDto {n /*n * 角色n */n private TUser tUser;n /** 角色名称*/n private String roleName;nnn public String getRoleName()...
mybatis 关联查询只返回一条数据
mybatis 关联查询只返回一条数据,主要原因是主键id映射错误。也就是关联的表的主键名称相同,只要给主键id取别名就可以了。
MySQL查询结果都为null,实际返回数据size为1的坑
在写SQL统计时,使用了聚合函数SUM,导致查询结果全部为null,但是返回的JSON为nnn{n "code":0,n "count":0,n "data":[null]n}nn原因:  聚合函数的问题nn在不使用聚合函数查询时,结果正常,集合的size也为0.nn解决方法:nn对接收的集合进行处理,去掉为null的数据,如下:nnncompanyReportList.remo...
【存储过程】-子查询返回的值多于一个
前言nn    小编最近的项目在测试阶段,跟存储过程打的火热,调用存储过程的时候遇到一个问题:子查询返回的值多于一个,这次记录下来跟大家分享一下。nnnn问题nn    异常错误描述: n     子查询返回的值多于一个。当子查询跟随在=、!=、<、<=、&amp
MySQL select 子查询复用,进行聚合计算
当对一个复杂的子查询结果进行分组(group by)聚合计算时, n有时需要进行多次聚合,如果不能复用自查寻的结果,查询效率会很低下 n在有些情况下,可以使用 IF 函数进行不同条件的聚合示例如下: n假设子查询的结果有班级,学号,平均分这3个字段(class, no, score) n现在想求每个班级的总人数和及格人数复用前:select A.class A.sum, B.sumnfromn(se
MYSQL group_concat()查询关联数据一条显示
当服务器端需要一条nA表nkeyId  name  sexn1   张三   男n2  李四  女n3  王五   女nnnB表nid   unionId   hobbyn1    1  篮球n2    1  足球n3   2  羽毛球nnn期望结果:n张三  男    篮球,足球n李四  女   羽毛球nnnSQl语句来搞定ngroup_concat()
MyBatis用Map接收结果集,在测试的时候会出现一个返回多条记录的异常。TooManyResultsException
TooManyResultsException: Expected one result (or null) to be returned by selectOne()rnMap本来就可以接收多条rnrn但是Mybatis返回的Map是这样的一种格式:Map rn一般的map格式{"key":"value"}rnMyBatis的map格式{"key":"key的值","key":"value的值"
oracle ora-01427 单行子查询返回多个行,在多个数据表关联时候出现的问题
出现这个报错,基本上都是因为某一个表的唯一字段记录多了,可以对这表的这个字段进行查重。 n一开始想法是在excel里面用筛选进行查重 n但是excel返回的结果的是把重复的那行隐藏了,但是总的行数还是不变。导致我以为没有重复记录。nn正确的应该要在数据库里面进行查重检测nnselect sx_name from SXXX having(count(1)>1) group by sx_name...
SQL IN 子查询返回多个值
下午遇到一个问题,IN子查询返回多个值。网上查了很多文档,资料,都没收获。问了技术群的同僚,竟然还被嘲笑了。IN 怎么可能匹配多个字段呢!个人印象中曾经在哪里见到过,所以就觉得不服气。自己慢慢地去试,试出来了。我们常用的IN 操作是这样的:select * from tab tnwhere t.col1 in ('value1''value2');但是如果是多个列的取值来自同一个子查询呢?
Mysql组合查询-UNION-多个SELECT语句作为单个查询结果返回
有两种基本情况需要使用组合查询:rn1、在单个查询中从不同的表返回结构类似的数据;rn2、对单个表执行多个查询,按单个查询返回数据。rn使用UNIONrn创建组合查询很简单,所需要做的只是给出每条SELECT语句,然后在各SELECT语句中间放上UNION。rn举例:需要查询价格小于等于5的所有物品的一个列表,而且还想包括供应商1001和1002生产的所有物品(不考虑价格)。当然,可以利用WHER
mysql 以查询结果作为查询条件sql写法
SELECTrndor.DEVICE_UUID AS deviceUuid,rndor.OUTAGE_START AS outageStart,rndor.OUTAGE_END AS outageEnd,rndor.outageTime AS outageTimernFROMrn(rnSELECTrnDEVICE_UUID,rnOUTAGE_START,rnOUTAGE_END,rnCASErnW
mysql一次查询,返回多个统计结果
1.sum(if)nnnselect nsum(if(status=1,1,0)) as s1_count,nsum(if(status=2,1,0)) as s2_countnfrom order;nn2.count()nnnselect ncount(status=1 or null) as s1_count,ncount(status=2 or null) as s2_countnfrom ...
MySQL 通过子查询批量插入数据
1 需求n需要将 a 表的数据插入 b 表,其中 a 表的数据很多是冗余的,是原始的多级分类数据,b 表相当于是对 a 表的简化,去掉冗余的数据,两表的 pdm 如下图:nn2 方法n将 a 表的各级编码、名称无重复的插入 b 表,并设置对应的级别,n通过子查询批量插入无重复数据的SQL如下:nINSERT into category_b (id, name, level) n select D...
Mybatis 只使用了association时,结果只出一条
类的成员变量只有两个复杂对象,没有指定ID. n因此在resultmap中 我就没有指定。结果只返回一条数据。nnn这里将其中一个对象的id指定为即可。(根据需求。) n n n nnn参考 http://bbs.csdn.net/topics/390999744 6楼。
Mysql_嵌套表查询_查询结果作为子表(临时表)
此功能同Oracle一样!rnrn rn    许多人都觉得MySQL不支持嵌套查询,其实MySQl从4.11版后已经完全支持嵌套查询了,那么下面我举些简单的嵌套查询的例子吧(源程序来自MySQL User Manual):rn    1. SELECT语句的子查询:rn    语法: (注意:AS 可省略)rnnn  CODE:rnrnrnnnrnnSELECT ... FROM (subque...
Mybatis 只返回一条数据的解决方案 之association、collection
Mybatis中有一个结果集映射map->resultMapresultMap中有association和collectionassociation是一对一或者多对一,collection是一对多为了方便理解,我用了两个类测试,一个是StudentC,一个ClassS:学生类StudentC:public class StudentC {n private Long sid;n ...
Mybatis select返回多个list,但为啥只有一条记录
问题描述nn本人做一个SSM项目,发现查询数据库数据,sql没有错,在Navicat中查询也是没有问题,但 返回数据只有一条,很奇怪,看网上教程,也都是差不多的教程,按理说我的mapper文件是没错的,因为其他一样的查询却可以查询出多条数据,同样的mapper写法。nn解决方法nn我对比了一下两者之间的sql差异,发现可能是在mapper中返回的字段比sql中多,再想是不是这个原因造成的,也有可能...
Mysql 中 IN条件为字符串时只有第一个数据可用的问题
前两天写了一个sql 使用了  in ,由于数据量很大,所以当时并没有发现有什么问题,后来清理了一下数据库,发现查出的结果并不是特别准确,鱼食就开始找原因,为什么会这样,我最开始的猜测是数据错误,但是检查过后这个猜测被排除了,第二个猜测是哪些条件查的有问题,于是又仔仔细细的看了一遍sql,也并没有发现问题所在。最后实在没办法我把sql拆开一点点执行,发现只能查询出 集合的第一个值  ,例如 我的集
Mybatis中一对多查询只有一条数据问题
Mybatis的mapper.xml中一对多查询结果的问题n问题描述:只能查询出一条数据nxml文件的配置n//<?xml version="1.0" encoding="UTF-8"?>n<!DOCTYPE mappern PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"n "http://mybatis.org/dtd/mybatis...
MySQL学习笔记——用子查询进行多数据表查询
 rn·ALL、ANY和SOME子查询rnany和all的操作符常见用法是结合一个相对比较操作符对一个数据列子查询的结果进行测试。它们测试比较值是否与子查询所返回的全部或一部分值匹配。比方说,如果比较值小于或等于子查询所返回的每一个值,<=all将是true,只要比较值小于或等于子查询所返回的任何一个值,<=any将是true。some是any的一个同义词。rn例:检索最早出生的总统r...
mysql实现多行查询结果合并成一行
原表中数据格式:rnrnrnrnselect round_nums,GROUP_CONCAT(cf) as cfs from pps_ads_arrange_info_cf where game_id = 3262 and channel_id = 42 and addtime >=rn '2015-08-22' and addtime rnrnrn处理完之后如下图:
MySQL查询出的一条数据拆分成多条
需求:nn有如下表格nnnn现在需要汇总出所有的score,将汇总结果平均分给:张三、李四、王五这三个人。SQL如下:nnnselect tmp_user.surname 姓,tmp_user.personal_name 名, tmp_num.num 分数 n from (select convert(sum(score)/3,decimal(15,2)) num from student) tm...
MySQL学习之子查询、合并查询结果、别名
学习峰哥java教程自学笔记:nnhttp://www.java1234.com/javaxuexiluxiantu.htmlnn表结构如下:nnt_book:nnnnnt_booktype:nnnnnt_price:nnnnnnnn1、带in关键字的查询nn(在后面的查询结果中查询前面的)nnSELECT * FROM t_book WHE
mysql在把子查询结果作为删除表中数据的条件,mysql不允许在子查询的同时删除原表数据
目标表和原表一致  MYSQL不支持如此操作n我们的一般思路就是,1、把子查询的结果创建临时表存储。2、把这个临时表作为原表删除的条件。3、删除临时表。n实例:n子查询:nSELECT product_id from t_product_specification_value as tps WHEREnNOT EXISTS(SELECT id from t_product p WHERE
文章热词 统计学稳健估计opencv函数 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 应该怎样学python 数据库课程应该