我在这里找到了一个 perl 脚本,用于管理随机化 Wikipedia 中的 wikipedia文章。该代码似乎是计算机生成的。由于我目前对 MySQL 的兴趣,我认为您可能会在数据库中拥有链接和相关数据。
我知道 MySQL 擅长维护表之间的关系,而您似乎可以使用 Perl 轻松实现。我觉得给他们的专长划一条线有点模糊。所以:
如何使用 MySQL 和 Perl 随机化 Wikipedia 文章?
我在这里找到了一个 perl 脚本,用于管理随机化 Wikipedia 中的 wikipedia文章。该代码似乎是计算机生成的。由于我目前对 MySQL 的兴趣,我认为您可能会在数据库中拥有链接和相关数据。
我知道 MySQL 擅长维护表之间的关系,而您似乎可以使用 Perl 轻松实现。我觉得给他们的专长划一条线有点模糊。所以:
如何使用 MySQL 和 Perl 随机化 Wikipedia 文章?
如果您真的想知道他们(维基百科)是如何做到的,请直接从 Media Wiki 查看这段代码:
http://svn.wikimedia.org/svnroot/mediawiki/trunk/phase3/includes/specials/SpecialRandompage.php
毕竟它是开源软件;),这就是它的美妙之处。
编辑:通过快速浏览代码,我很确定他们正在使用一个名为 page_random 的字段,该字段在创建行时设置。然后,由于它是一个索引字段,因此以限制 1 对其进行排序是即时的(具有给定的随机偏移量,当然对于此应用程序有效)。
这是一种非常标准的快速随机访问方法,因为 ORDER BY RAND() 非常慢,正如我在另一个答案中提到的那样。
编辑#2:我喜欢 OOP Wiki Media 的代码是多么干净和恰当。绝对将其添加为书签以向 PHP 新手展示好的 PHP 代码是什么样的(并提醒自己)。
SELECT id FROM articles ORDER BY RAND() LIMIT 1