草庐IT

php - ORDER BY RAND() 用于多列(垂直排列每列的内容)

我正在寻找一个mysql解决方案,让多个列从该列输出一个随机字段。我现在的查询只随机选择整行,但不会随机选择分隔的列。$sql="SELECTcol1,col2,col3,col4FROMtableORDERBYRAND()limit4";我试过子查询,但我不熟悉,所以如果有人能帮忙...... 最佳答案 试试这个:SELECTCASErndWHEN1THENcol1WHEN2THENcol2WHEN3THENcol3WHEN4THENcol4ENDAScolFROM(SELECTcol1,col2,col3,col4,FLOOR(

mysql - MsSQL NEWID 是否像 MySQL Rand() 一样糟糕

根据这篇文章:http://net.tutsplus.com/tutorials/other/top-20-mysql-best-practices/使用ORDERBYRAND()是个坏主意,因为:Theproblemis,MySQLwillhavetoperformRAND()operation(whichtakesprocessingpower)foreverysinglerowinthetablebeforesortingitandgivingyoujust1row.现在一些工作的家伙,最近发现你可以在使用MsSQL时使用ORDERBYNEWID()(我不太了解)。现在,我的问题

mysql - 为什么不使用mysql ORDER BY RAND()?

我看到很多网站说不要使用ORDERBYRAND(),例如http://forge.mysql.com/wiki/Top10SQLPerformanceTips所以我运行了一个测试,我测试了20k记录表的速度和性能,其中10k记录有username="username":SELECTusernameFROMtestingspeedWHEREusername='username'ORDERBYRAND();结果:Showingrows0-29(10,000total,Querytook0.0119sec).id=1select_type=SIMPLEtable=testingspeedty

php - 为什么在 SELECT 语句中使用 RAND() 时 MySQL 返回相同的结果?

我打开了多个浏览器窗口,指向同一个自动刷新的PHP页面。它访问MySQL数据库以识别过时的客户信息。专门获取最后一天未更新的记录并强制更新。其余代码似乎处理得很好。这是我的MySQLi查询:$query="SELECT*FROMcustomersWHEREcustomer_group='consumables'ANDcustomer_updated我被告知RAND()不太适合,因为它处理大表的速度很慢,但在这个项目结束之前我的表不会增加到超过20000。我还有一个随机变量被传递到URL,例如“clientdataupdates.php?nocachepls=1541231”。所以这就是

php - rand() 查询顺序太慢

我在名为offers的数据库中有一个大表(超过300.000行)。当我执行下面的查询时,它需要超过3秒。$sql="SELECT*FROM`offers`WHERE(`start_price`/`price`>=2)ORDERBYRAND()LIMIT1";表提供`id`int(11)NOTNULL,`title`textNOTNULL,`description`textNOTNULL,`image`textNOTNULL,`price`floatNOTNULL,`start_price`floatNOTNULL,`brand`textNOTNULL有没有办法让它更快?我想选择一个随机

php - 好主意/坏主意?在一小组子查询结果之外使用 MySQL RAND()?

所以在MySQL中,我已经读到对于有很多行的大表,使用ORDERBYRAND()是一个坏主意(即使有大约500行表,据说)。缓慢且低效。大量行扫描。这个(下图)看起来如何作为替代方案?SELECT*FROM(...通常返回少于20行的集合的子查询...)ORDERBYRAND()LIMIT8我不会对大量数据使用RAND(),而是选择一个小的子集,然后才对那些返回的行应用RAND()。在99.9%的情况下,上面看到的子查询应该选择少于20行(事实上,通常少于8行)。很想听听人们的想法。(仅供引用,我正在用PHP处理MySQL。)谢谢! 最佳答案

php - 使用 RAND 和 MD5 在 MYSQL 唯一字段中生成唯一键。可能的?可接受的做法?

我正在尝试为我的网站实现一个简单的密码重置系统。这个想法是这样的:用户请求密码重置链接。CodeIgniter系统通过MYSQL使用RAND和MD5(我知道它不安全且损坏,可能最好使用SHA1或更好,不是重点)生成随机字符串并对其进行哈希处理,生成32位key。用户收到包含key的链接。剩下的就很明显了。我想知道是否-答:MYSQL函数RANDMD5(或更好)被生成到设置为UNIQUE的字段中,如果它们碰巧生成的键已经存在于该字段下的表中,将自动重新生成。B:这是生成密码重置链接的可接受方法。或者用盐对用户的电子邮件地址进行散列以防止重复是否更好?显然,这只是围绕整个过程的基本实现和安

mysql - ORDER BY RAND() 似乎不那么随机

我有一个相当简单的SQL(MySQL):SELECTfooFROMbarORDERBYrank,RAND()我注意到当我刷新结果时,随机性很弱。目前样本数据中有六个排名相同的结果(整数零)。有很多随机性测试,但这里有一个简单的手动测试:运行两次时,两次运行的第一个结果应该相同,大约有六分之一的时间。这肯定不会发生,领先的结果至少有三分之一的时间是相同的。我想要对排列进行均匀分布。我不是专家统计学家,但我很确定ORDERBYRAND()应该可以做到这一点。我错过了什么?对于MySQL,SELECTrand(),rand()显示两个不同的数字,所以我不相信“每个查询一次”的解释

php - 优化大型数据库中的 JOIN ORDER BY RAND() mysql 查询

我正在做一个项目,它有一个很大的QuestionBank,为了测试添加到系统,20个问题在运行时基于以下查询:SELECTQuestion.*fromQuestionJOINTestONQuestion.Subject_ID=Test.Subject_IDANDQuestion.Question_Level=Test.Test_LevelORDERBYRAND()LIMIT20;但是,众所周知,MySQL的RAND()函数会杀死您的服务器,我一直在寻找更好的解决方案。结果EXPLAIN[上述查询]:+----+-------------+----------+------+------

php - MySQL RAND() 多久可以使用一次?它使用/dev/random 吗?

我有一个只有几行(前50行)的表,我需要从表中获取随机值我可以通过ORDERBYRAND()LIMIT1主要问题是当我在5秒内有6k个选择时,rand仍然“可靠”吗?兰特是如何计算的,我可以随着时间的推移播种吗?(idk,每5秒)。 最佳答案 MySQL伪随机数生成器是完全确定的。文档说:RAND()isnotmeanttobeaperfectrandomgenerator.Itisafastwaytogeneraterandomnumbersondemandthatisportablebetweenplatformsforthes