> 信息中心 >

mysql中SELECT areaname FROM area WHERE areaid = ROUND(rand()*32)有时候会出现多条记录???

来源:互联网 编辑:吕秀秀

有网友碰到过这样的问题:mysql中SELECT areaname FROM area WHERE areaid = ROUND(rand()*32)有时候会出现多条记录???,问题详细内容为:

请教下SELECT areaname FROM area WHERE areaid = ROUND(rand()*32)这句话为什么有时候会出现多条记录??
mysql版本:5.7.23-log MySQL Community Server (GPL)
表结构:
CREATE TABLE area (
areaid int(11) NOT NULL,
areaname varchar(50) DEFAULT NULL,
parentId int(11) DEFAULT NULL,
PRIMARY KEY (areaid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
数据:
INSERT INTO area VALUES (1, '北京', '4744');
INSERT INTO area VALUES (2, '上海', '4744');
INSERT INTO area VALUES (3, '天津', '4744');
INSERT INTO area VALUES (4, '重庆', '4744');
INSERT INTO area VALUES (5, '河北', '4744');
INSERT INTO area VALUES (6, '山西', '4744');
INSERT INTO area VALUES (7, '河南', '4744');
INSERT INTO area VALUES (8, '辽宁', '4744');
INSERT INTO area VALUES (9, '吉林', '4744');
INSERT INTO area VALUES (10, '黑龙江', '4744');
INSERT INTO area VALUES (11, '内蒙古', '4744');
INSERT INTO area VALUES (12, '江苏', '4744');
INSERT INTO area VALUES (13, '山东', '4744');
INSERT INTO area VALUES (14, '安徽', '4744');
INSERT INTO area VALUES (15, '浙江', '4744');
INSERT INTO area VALUES (16, '福建', '4744');
INSERT INTO area VALUES (17, '湖北', '4744');
INSERT INTO area VALUES (18, '湖南', '4744');
INSERT INTO area VALUES (19, '广东', '4744');
INSERT INTO area VALUES (20, '广西', '4744');
INSERT INTO area VALUES (21, '江西', '4744');
INSERT INTO area VALUES (22, '四川', '4744');
INSERT INTO area VALUES (23, '海南', '4744');
INSERT INTO area VALUES (24, '贵州', '4744');
INSERT INTO area VALUES (25, '云南', '4744');
INSERT INTO area VALUES (26, '西藏', '4744');
INSERT INTO area VALUES (27, '陕西', '4744');
INSERT INTO area VALUES (28, '甘肃', '4744');
INSERT INTO area VALUES (29, '青海', '4744');
INSERT INTO area VALUES (30, '宁夏', '4744');
INSERT INTO area VALUES (31, '新疆', '4744');
INSERT INTO area VALUES (32, '台湾', '4744');

mysql ,我搜你通过互联网收集了相关的一些解决方案,希望对有过相同或者相似问题的网友提供帮助,具体如下:

解决方案1:
因为where条件中包含了rand(),使得mysql把它当做变量来处理。无法用常量的等值查询,如果你想实现随机取一条数据出来可以试试这样写
SELECT areaName,areaid FROM area ORDER BY RAND() LIMIT 1 如果考虑效率问题你可以看一下这篇文章
https://www.cnblogs.com/tianye8123/p/5994223.html 收获园豆:10
============================================
哦哦,好的,谢谢。
我最近查了下资料,应该是mysql自5.7以后的一个bug。并且mysql官方也没有修复这个bug的意思。
解决方案2:
不知道,帮顶
解决方案3:
这种问题你不该问!!!自己测试一下就知道了
解决方案4:
应该是mysql的一个bug。
详情参考
https://blog.csdn.net/huanghanqian/article/details/82899885

Mysql中怎么select出相同的多条记录,相同的2个字...

答:你想要的效果是啥?过滤重复的相同记录?还是说你觉得你的select语句存在问题?你的select语句想实现什么功能,然后你的select语句是怎么样的,可以贴出来看看先

网站访问量大 怎样优化mysql数据库

2、复合索引 比如有一条语句是这样的:select * from users where area='beijing' and ag... 5、排序的索引问题 mysql查询只使用一个索引,因此如果where子句中已经使用了索引的...

MySQL表设计优化与索引

MySql的索引可以让你的数据库飞起来,大大的提高数据库效率。设计MySql索引的时候... 2.复合索引 比如有一条语句是这样的:select * from users where area=’beijing&r...

mysql索引 同时创建3个和分开创建有啥区别

例: select * from test where area='11' select * from test where area='... select * from test where area='11' and age=1 and salary=2.0 以上有索引 ...

有没有在衢州的用户知道衢州中道商务有限公司的 想了解一下

2、复合索引 比如有一条语句是这样的:select * from users where area='beijing&#... 5、排序的索引问题 mysql查询只使用一个索引,因此如果where子句中已经使用了索引的...

MSSQL数据库十万条数据,查询代码要怎么改效率才会提高,有没...

IF EXISTS(select top 1 wm_id from wm_area where wm_name = @mycity) BEGIN select top 1 @MyCityID = wm_id from wm_area where wm_name = @mycity SELECT @...

php垃圾代码优化操作代码

查看sql记录后大吃一惊,查询的数量惊人,随便一个页面,sql查询都在几十条,多的有上千... tb1.cc from pz_area right join (SELECT aid,count(*) as cc FROM pz_content WHERE u...

php判断IP跳转页面

数据库无法读取"); } $result=mysql_query("select * from `ip` where `begi... area']; else{ $page='default'; //如果IP不在数据库中,则用缺...

mysql存储过程基础之遍历多表记录后插入第三方表中详解

时候,都只需要关联统一父类,数据间的关系就清晰多了,开发也会简单很多。 那么现在抽... 游标 循环使用介绍MySQL存储过程使用实例详解MySQL存储过程例子(包含事务,输出参...


请注意,本站信息均收集自互联网,相关信息仅供参考,医疗等重要信息请以正规途径为最终意见,本站不承担任何责任!

www.wosoni.com false 互联网 http://www.wosoni.com/blogcnk/mm/ccdkee.html report 3008 解决方案1:因为where条件中包含了rand(),使得mysql把它当做变量来处理。无法用常量的等值查询,如果你想实现随机取一条数据出来可以试试这样写SELECT areaName,areaid FROM area ORDER BY RAND() LIMIT 1 如果考虑效率问题你可以看一下这篇文章https://www.cnblogs.com/tianye8123/p/5994223.html收获园豆:10====================================

热门图片