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

すべてのテーブルを配列に入れることができます。次に、4 つのランダム インデックスを生成し、それらがすべて一意のインデックスであることを確認します (重複しないようにします)。これらのインデックスを$random_n取得し、それらのインデックスの配列内の位置を 4 つの変数に入力します。

于 2012-08-11T19:20:23.480 に答える