2

我需要一种快速、有效的方法来随机返回单个 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
4

2 回答 2

6

只需使用 INFORMATION_SCHEMA.TABLES:

select table_name
from INFORMATION_SCHEMA.TABLES t
where TABLE_SCHEMA = 'YOUR_DB_NAME'
order by rand()
limit 4
于 2012-08-11T19:19:56.710 回答
0

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

于 2012-08-11T19:20:23.480 回答