【问题标题】:inserting values into a column using loop in mysql在mysql中使用循环将值插入列
【发布时间】:2016-08-16 15:55:26
【问题描述】:

我在名为 Student 的表中有一个名为 Roll No 的列 我想在该列中插入从 100 到 450 的值,并且我想在不手动插入从 100 到 450 的所有值的情况下执行此操作。有什么方法可以使用循环来完成吗? 谢谢

【问题讨论】:

  • 看看这个:stackoverflow.com/questions/9764621/… 它使用的是 sql server,但你可以知道你能做什么。
  • 你可以编写一个 php/python/任何你想要的语言脚本来执行这个操作
  • 我正在使用 MySql 工作台,那么我在 java 中哪里写一个循环代码来执行呢

标签: mysql loops insert


【解决方案1】:

假设您不想使用任何其他语言,您将不得不创建一个 MYSQL 过程来完成此操作。

delimiter //

CREATE PROCEDURE insertproc()
BEGIN
    DECLARE i int DEFAULT 100;
    WHILE i <= 450 DO
        INSERT INTO students (rollNo) VALUES (i);
        SET i = i + 1;
    END WHILE;
END//

delimiter ;

相关SQLFiddle:http://sqlfiddle.com/#!2/a1320/2

查看我用作来源的类似问题:MySQL Insert with While Loop

【讨论】:

  • 18:29:33 CREATE PROCEDURE insertproc() BEGIN DECLARE i int DEFAULT 100 错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行 0.016 秒的 '' 附近使用正确的语法我收到此错误
  • 很奇怪,我似乎也遇到了这个错误,但仅限于 sqlfiddle。当我通过 MYSQL-CommandLine 输入上述内容时,它工作正常。我认为用他们的服务定义分隔符存在问题。
【解决方案2】:

这是你想要的脚本。我是用php做的

<?php
$servername = "";
$username = "";
$password = "";
$dbname = "";

// Create connection
$con = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($con->connect_error) {
    die("Connection failed: " . $con->connect_error);
} 

echo "Connected successfully";

for ($i = 100; $i <= 450; $i++) {
 $sql="insert into student(rollno) values('$i')";
    $result=mysqli_query($con,$sql);
}
mysqli_close($con);
?> 

不要忘记输入用户名、密码等。然后将其保存在 .php 文件中并运行它

【讨论】:

    猜你喜欢
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 2012-07-10
    • 2019-01-21
    相关资源
    最近更新 更多