草庐IT

随机数

全部标签

选择随机记录并在一个查询中更新相同的记录?

我正在开发一个小的横幅旋转脚本,它从数据库中加载随机横幅。我正在跟踪数据库中的印象,想知道我是否可以选择一个随机记录并在单个查询中更新其印象值,或者我是否需要选择一个随机记录,然后根据记录pk进行更新。使用MySQL。 最佳答案 这不能在单个查询中完成。最好的办法是将此逻辑放在存储过程中。 关于选择随机记录并在一个查询中更新相同的记录?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

mysql - 如何在考虑优先级系统时查询 MYSQL 表中的随机记录

我的table看起来像这样ID|Priority---------------#1|25#2|50#3|125#4|300#5|500对于每1000个查询,我希望(平均)检索ID#125次、#250次、#3125次等。我的表将有1000条记录,最终会超过100,000条记录,是否可以扩展它?此查询会运行得非常频繁,因此它也需要在大型表中运行得非常快。如果有更有效的方法,我绝对愿意重新考虑表结构-有什么建议吗? 最佳答案 我认为您将很难找到能够在非常大的数据集上特别好地扩展的查询。实际上有两条路径可供您选择:像您一样使用权重表,然后将

php - 优化随机记录查询

我遇到了这个查询的问题....或者,还没有我很快就会遇到的问题。目前,“marketingDatabase”表大约有11,000行,但在下个月内,它可能会接近100,000行,到3月可能会增长到500,000行。我知道使用ORDERBYRAND()不是可行的方法,但这是我唯一需要做的事情。我尝试过其他方法,但第一个WHERE语句似乎让我失望了。我正在使用PHP,所以我也可以用PHP处理其中的一些内容。对于此查询,从适合WHERE语句的行中选择随机行的最佳方法是什么?这是查询:SELECTidFROM`marketingDatabase`WHEREdo_not_call!='true'A

php - 如何在 MySQL 中实现事务安全的随机序列

所以我的应用需要让用户生成随机字母数字代码,例如A6BU31、38QV3B、R6RK7T。目前它们由6个字符组成,而I和O未被使用(因此我们有34^6种可能性)。然后将这些代码打印出来并用于其他用途。我现在必须确保许多用户可以为每个请求“保留”最多100个代码,因此用户A可能想要获得50个代码,用户B想要生成10个代码,依此类推。这些代码在所有用户中必须是唯一的,因此用户A和用户B可能不会同时收到代码ABC123。我目前的方法(使用PHP和MySQL)为此有两个InnoDB表:一个(“存储库”)包含大量预生成代码(因为随着时间的推移,冲突的可能性会增加,我不想尝试插入如果失败尝试另一个

mysql - MySql 示例数据中的随机日期

我在MySql数据库中创建了一个示例数据集,我需要用它来测试生成一些报告。对于一个特定的表,我有10万条记录,这些记录都是在几个小时内创建的。由于示例数据的生成方式,我无法将10万条记录的日期时间列设置为所需的值。我如何使用SQL语句来随机化100k记录上的日期时间列,而不是将它们分布在一个月内的几个小时内?例如,我想将记录平均分布在2012年10月1日到2012年10月31日之间。 最佳答案 我们可以使用RAND()功能。正在关注MySQLReferenceManual,得到一个随机整数R在i范围内,使用表达式FLOOR(i+RA

php - 随机唯一的 Mysql Id

我有一个表,想使用1个mysql查询为其生成随机唯一值。表结构如下:id|unique_id1|12|53|24|7等等unique_id是integer(10)无符号所以我想每次都用唯一的随机值(在我的示例中不是1、5、2、7)填充unique_id字段。算法是:1.Get1uniquerandomvalue,whichwillnothaveduplicatesinunique_idfield2.Createnewrowwithunique_id=resultof1query我试过了SELECTFLOOR(RAND()*9)ASrandom_numberFROMtableHAVING

mysql - Innodb 的随机主键

文章SlowINSERTintoInnoDBtablewithrandomPRIMARYKEYcolumn'svalue描述如果您使用随机PRIMARYKEY列,插入会很慢。和MySQLdocs说:Ifindexrecordsareinsertedinasequentialorder(ascendingordescending),theresultingindexpagesareabout15/16full.Ifrecordsareinsertedinarandomorder,thepagesarefrom1/2to15/16full.为什么插入会导致大量页面拆分(1/2满)和随机PR

mysql - Bookshelf.js 使用 rand() 随机排序项目

我正在使用bookshelf.js开发一个使用mariaDB的项目。我想让我的邮件随机排序。我发现这个解决方案适用于knex.jsknex('posts').select('id','text').orderByRaw('RAND()').limit(100)但我想对Bookshelf做同样的事情。 最佳答案 根据bookshelf.js文档,model.query()返回底层的knex查询构建器,您可以将您的knex解决方案应用于该构建器。Post.query(function(qb){qb.select('id','text')

php - 使用 MySQL 和 PHP 获取非重复的随机元素

我有一个场景,我需要从一组条目中随机找到一个获胜者。条目可以多次出现,现在我正在获取按用户ID分组的所有记录,并使用PHP的array_rand()方法来随机查找获胜者。分组用于避免重复元素。这里我面临两个问题查询超时,因为它正在处理将近10000000条记录。PHP内存因大量记录而耗尽。我当前的查询很简单,看起来像这样SELECTid,userIDfromtablewhereid!=1111andcreated_at>='2017-08-10'groupbyuserID最好的方法是什么,适用于这种大规模? 最佳答案 使用ORDER

mysql - UPDATE 中的 SQL 随机值

在MYSQL数据库中,我需要用8到120之间的随机数更新表“people”,但如果值在103到109之间,我希望它变成110。我将如何进行这样的查询?UPDATEpeopleSETcolumn1='________randomexpression_________' 最佳答案 我还没有测试过,但也许它应该有用。UPDATEpeopleSETcolumn1=(SELECTif(r.randBETWEEN103AND109,110,r.rand)FROM(SELECTfloor(8+rand()*113)rand)r)