我发起了一场比赛,推荐他人的人每次推荐都会增加获胜的几率。现在我必须弄清楚如何使用mysql或php来实际为他们提供更好的赔率。选择随机行不会削减它。在我的表格中有两列,一列用于ID,一列用于推荐ID。该表通过将ID添加到推荐ID字段来跟踪谁推荐了谁,因此前几行数据如下所示:nameidreferralidmark1520ted20jim2220所以“ted”应该有3次获胜的机会,因为他推荐了另外两个人。我如何在mysql或php中执行此操作? 最佳答案 SELECTpeople.name,people.idFROMpeopleLE
每次加载页面时如何显示3个随机值?目前我使用以下代码一次显示一个:我尝试过LIMIT5,但这对结果没有影响。谢谢 最佳答案 您必须为要获取的每条记录再次调用mysql_fetch_assoc()。因此,使用LIMIT3然后简单地循环遍历结果集。像这样:$sSQLQuery="SELECTcareernameFROMcareersORDERBYRAND()LIMIT3";$aResult=mysql_query($sSQLQuery);while($aRow=mysql_fetch_array($aResult,MYSQL_ASSOC
我正在从我对MySQL数据库的查询中寻找一种特殊的要求,我想以不同的方式应用orderby。例如。在具有以下数据的user_id和user_rating和user_department字段的数据库中。+------------------------------------------------------+|user_id|user_rating|user_department|+------------------------------------------------------+|1|102|A||2|33|B||3|43|C||4|54|A||5|63|A||6|214
我有两张table第一个只有5行第二个有800行我正在使用这个查询:SELECT*FROMtable1t1JOIN(SELECT*FROMtable2ORDERBYRAND()LIMIT5)t2但是对于第二个表的每个结果,我从第一个表中获取5行。加入时我不需要条件,我只想要第二个表中的5个随机结果加入第一个表中的5个结果。例子:--------------------------------------------------------|table1(alwayswithsameorder)|table2(randomorder)|--------------------------
初始目标:我想在表格中生成随机且唯一的代码(6位数字)。我使用像这样的SQL查询来执行此操作:SELECTSUBSTRING(CRC32(RAND()),1,6)asmyCodeFROM`codes`HAVINGmyCodeNOTIN(SELECTcodeFROM`codes`)我问我当没有更多可用代码时它会如何react,所以我做了以下测试测试上下文:MySQL版本:5.5.20MySQL表:CREATETABLE`codes`(`id`INTUNSIGNEDNOTNULLAUTO_INCREMENTPRIMARYKEY,`code`VARCHAR(10)NOTNULL,UNIQUE
我有一个非常大的表(超过10M甚至100M条记录)具有此架构:idint主键,规则int并希望根据规则选择一个随机条目。我试过这个查询,但这需要很长时间(treenode是表的名称):SELECTtmp.id,tmp.ruleFROMtreenodeLEFTJOIN(SELECT*FROMtreenodeORDERBYRAND())tmpON(treenode.rule=tmp.rule)GROUPBYtmp.rule;将数据作为哈希表保存在内存中会占用大量内存。另一种选择是从数据库中获取每个组并选择一个随机条目。同样,由于组数约为100k,将这些数量的查询发送到数据库需要很长时间。更
摘要与一些同事交谈时,我们遇到了“从大数据库表中提取随机行”的问题。这是一个经典的方法,我们知道天真的方法(alsoonSO)通常是这样的:从mytableorderbyrand()限制1中选择*问题我们还知道这样的查询是完全低效的,实际上只能在很少的行中使用。有一些方法可以用来获得更好的效率,比如theseones仍然是这样,但是它们不会对任意主键起作用,一旦你的数字主键上有洞,随机性就会被扭曲。最后一个被引用的问题的答案链接到thisarticle,它有一个很好的解释和一些很好的解决方案,涉及一个附加的“等分布”表,每当“主数据”表发生变化时必须维护该表。但是,如果您经常删除一个大
我有以下表格:TABLEproductidint(11)titlevarchar(400)TABLEtagidint(11)textvarchar(100)TABLEproduct_tag_mapproduct_idint(11)tag_idint(11)PRODUCT_TAG_MAP将标签映射到产品。标签在系统中的分布不正常,即一些标签的产品比其他标签多得多。我正在尝试编写一个SQL来获取25个随机产品:每个标签5个产品,5个标签(所以是5x5=25)。在这里找到答案:HowcanIgetanevendistributionusingWHEREidIN(1,2,3,4)但这不会产生随
我有一个查询要分批插入多行。基本上,我需要分批拆分插入,以便为插入的批生成一个唯一的随机ID。我尝试过但失败了很多不同的选择,其中之一如下。$batch=150;$sql="SELECTDISTINCT`column`FROM`table`GROUPBY`column`ORDERBY`ID`ASC";$sqle=$con->Execute($sql);$results=$sqle->getrows();for($i=0;$iqstr($columns1).",`rcode`=".$con->qstr($randd).",`DATE_PUBLISHED`=".$con->qstr($sd
我有三个表:Users具有唯一的nickname,超过四百个Names,300000加Adjectives以及大量可能的组合。订阅时,用户可以通过将随机名称与随机形容词组合来生成一个独特的、随机的且希望有趣的昵称。用户点击一个按钮,Voilà!一个令人振奋的身份诞生了。我通过对每个名称和形容词运行两个查询来选择随机名称和形容词:SELECTFLOOR(RAND()*COUNT(*))AS`offset`FROMnames/adjectives和SELECT*FROMnames/adjectivesLIMIToffset,1然后我检查用户是否不幸生成了一个已经存在的身份。SELECTCO