如何从具有数千个表的mysql数据库中选择4个随机表?

时间:2012-08-11 19:15:01

标签: php mysql

我需要一种快速有效的方法,在一个mysql数据库中随机返回4个表的名称。表格没有结构化的命名模式,除了它们都是小写字母和数字。

例如: my_database包含以下表格:

(cat, dog, boat, car, cars, cars35, accorns, accerns, speaker, shell, olympics, politics, fray, ttypo, ... (thousands of tables like this) ... , road)

我需要一种有效的方法来返回一组没有重叠的随机表的名称。

示例:

function_random_table(4) would return 4 table names stored to the following variables:

$random_1 = cars
$random_2 = cars35
$random_3 = shell
$random_4 = cat

2 个答案:

答案 0 :(得分:6)

只需使用INFORMATION_SCHEMA.TABLES:

select table_name
from INFORMATION_SCHEMA.TABLES t
where TABLE_SCHEMA = 'YOUR_DB_NAME'
order by rand()
limit 4

答案 1 :(得分:0)

您可以将所有表放在一个数组中。然后生成四个随机索引并确保它们都是唯一索引(因此不重叠)。获取这些索引并使用数组中位置处的四个$random_n变量填充这些索引。