2017-01-22 2 views
0

キーの項目数に応じて以下のクエリを実行したいとします。たとえば、テーブルに5つのおもちゃを追加したいのでクエリ5回実行されます。定義された回数に応じて複数の行に挿入するMysqlクエリ

私のクエリは次のようになります。

$q = 'INSERT INTO StockDetails (stockNumber, quantity, items) VALUES (".$snumber.", "1", "toys")'; 

と私は、このようなテーブルで終わるしたい:

ID  stockNumber  quantity  items 
----------------------------------------------- 
1  ST001    1   toys 
2  ST001    1   toys 
3  ST001    1   toys 
4  ST001    1   toys 
5  ST001    1   toys 

ので、私は10におもちゃの数を変更した場合、私はなります10行のテーブル。

助けてください。あなたは、指定された回数だけ実行されるinsertクエリをしたい場合、それは例えば、functionの内側にそれをラップし、パラメータの一つとしてnumber of rowsでその関数を呼び出す方が良いでしょう

+0

ポイントは何値が常に1である数量列の? – Strawberry

答えて

0

DELIMITER $$ 
DROP FUNCTION IF EXISTS `test`.`myfunction` $$ 
CREATE FUNCTION `test`.`myfunction` (count int, i_stockNumber varchar(20), i_quantity int, i_items int) RETURNS INT 
DECLARE x INT; 
SET x = 0; 
BEGIN 
    WHILE x <= count DO 
     insert into StockDetails (stockNumber, quantity, items) values (i_stockNumber, i_quantity, i_items); 
     SET x = x + 1; 
    END WHILE; 
    RETURN LAST_INSERT_ID(); 
END $$ 
関連する問題