-1

データを入力したいテーブルがあります。ルックアップ テーブルを作成していて、含まれるデータを準備したいと考えています。ルックアップ テーブルには約 1400 行あるため、標準の複数挿入は正しくないようです。さらに、可能であれば、PHP を使用せずにこのテーブルを準備したいと考えています。これは私のテーブルの形式です:

CREATE TABLE score_percentile_lookup (
    id INT(11) NOT NULL AUTO_INCREMENT,
    instance_score INT(11), 
    percentile DECIMAl(5, 2)
    PRIMARY KEY(id)
);

基本的に、開始するには、インスタンス スコアは増分リスト [0 .. 1400] である必要があり、パーセンタイルは空白にすることができます。mysql は、基本的に次のような挿入を実行する構文をサポートしていますか。

INSERT into score_percentile_lookup (instance_score) VALUES (0), (1), ... (1400);

PHP を使用してこのリストを生成できますが、それがなくても可能かどうかを知りたいです。助けてくれた人に感謝します。

4

2 に答える 2

1

関連する質問の優れた回答から適応:

INSERT INTO score_percentile_lookup
(instance_score)
SELECT TOP 1401
(TWO_1.SeqValue + TWO_2.SeqValue + TWO_4.SeqValue + TWO_8.SeqValue + TWO_16.SeqValue + TWO_32.SeqValue + TWO_64.SeqValue + TWO_128.SeqValue + TWO_256.SeqValue + TWO_512.SeqValue + TWO_1024.SeqValue) SeqValue
FROM
(SELECT 0 SeqValue UNION ALL SELECT 1 SeqValue) TWO_1
CROSS JOIN (SELECT 0 SeqValue UNION ALL SELECT 2 SeqValue) TWO_2
CROSS JOIN (SELECT 0 SeqValue UNION ALL SELECT 4 SeqValue) TWO_4
CROSS JOIN (SELECT 0 SeqValue UNION ALL SELECT 8 SeqValue) TWO_8
CROSS JOIN (SELECT 0 SeqValue UNION ALL SELECT 16 SeqValue) TWO_16
CROSS JOIN (SELECT 0 SeqValue UNION ALL SELECT 32 SeqValue) TWO_32
CROSS JOIN (SELECT 0 SeqValue UNION ALL SELECT 64 SeqValue) TWO_64
CROSS JOIN (SELECT 0 SeqValue UNION ALL SELECT 128 SeqValue) TWO_128
CROSS JOIN (SELECT 0 SeqValue UNION ALL SELECT 256 SeqValue) TWO_256
CROSS JOIN (SELECT 0 SeqValue UNION ALL SELECT 512 SeqValue) TWO_512
CROSS JOIN (SELECT 0 SeqValue UNION ALL SELECT 1024 SeqValue) TWO_1024
ORDER BY SeqValue
于 2013-09-06T14:01:47.910 に答える