вставить один набор данных несколько раз mysql

Мне нужно вставить один набор данных несколько раз, скажем n строк.

INSERT INTO MyTable VALUES ("John", 123, "US"); 

Можно ли вставить все n строк в один оператор SQL?

здесь n – динамическое значение n – это ввод пользователя, как сделать запрос вставки n раз, любую идею.

 $sql = "INSERT INTO `mytable` VALUES(`field1`,`field2`,`field3`) VALUES "; $count = 5; for($i=0;$i<$coutn;$i++) { $sql .= " ('john','123','us' )"; } 

это правильный путь ..

Да, это можно сделать легко, он должен выглядеть примерно так:

 INSERT INTO MyTable VALUES ("John", 123, "US"), ("Carl", 123, "EU"), ("Jim", 123, "FR"); 

Тем не менее, хорошая практика программирования указывает столбцы вашей таблицы в запросе, например:

 INSERT INTO MyTable (Column1, Column2, Column3) VALUES ("John", 123, "US"), ("Carl", 123, "EU"), ("Jim", 123, "FR"); 

EDIT: вы можете построить свой запрос следующим образом ( for цикла), $total – ваш пользовательский ввод:

 $sql = "INSERT INTO MyTable (Column1, Column2, Column3) VALUES"; //Build SQL INSERT query for ($i = 1; $i <= $total; $i++) { $sql .= " ($value1, $value2, $value3), "; } //Trim the last comma (,) $sql = rtrim($sql,","); //Now, the $sql var contains the complex query. $result = mysql_query($sql); 

Как вы можете видеть, мы не выполняем INSERT в цикле, а скорее строим текст запроса SQL, а затем выполняем его за один проход.