我需要一种快速有效的方法,在一个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
答案 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
变量填充这些索引。