需要在mysql中插入价格表

57hvy0tb  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(342)

我有一个表,需要在mysql数据库中添加一行新记录。现在我为每个记录手动执行此操作,但是每个表中有600个记录。
我在必须插入的行中有以下列,称为“窗帘项目”数据库:
组>这是连接价格表的记录,例如这是价格表31。
宽度>这可能是20厘米30厘米等,直到240
长度>这可能是20厘米30厘米等,直到300
价格>可能是30美元
因此,如何在mysql数据库中一次执行这个表。
您可以在这个链接中看到一个表的示例
非常感谢!沃特

x4shl7ld

x4shl7ld1#

由于没有您的数据库结构的确切细节,因此不可能给您工作的解决方案。
我猜您需要insert into select语句,它将数据从一个表复制到另一个表中。您可以从w3scools中找到更多详细信息,网址为:
https://www.w3schools.com/sql/sql_insert_into_select.asp

bvhaajcl

bvhaajcl2#

听起来您需要的是一种将电子表格矩阵转换为一组加载数据库表的sql命令的方法。
如果是这样的话,这更像是一个输入解析问题,而不是一个数据库问题。
一般做法是:

for each row
    for each column
        issue an INSERT statement using the row, column and intersection cell

下面是一个perl程序,它将使用您提供的电子表格的第一个选项卡(将其导出到csv后)来实现这一点:


# !/usr/bin/perl

# read in the header line and trim off whitespce

$header = <STDIN>;
$header =~ s/^\s+|\s+$//g;

# make the header line into an array of 'width' values

@widths = split(/,/, $header);

# loop through the remaining (data) rows

while ($data = <STDIN>) {
    # trim whitespace
    $data =~ s/^\s+|\s+$//g;

    # split the row into data elements, and use the 1st one as the 'length'
    @prices = split(/,/, $data);
    $length = $prices[0];

    # loop through the remaining data cells
    for ($i = 1; $i < 23; $i++) {
        # print out an appropriate INSERT statement
        printf(STDOUT "INSERT INTO curtain_price_table (group, width, length, price) VALUES (31, %d, %d, %d);\n", $widths[$i], $length, $prices[$i] . "\n");
    }
}

在这里,perl不是您唯一的选择;任何脚本语言都可以很容易地完成同样的任务。而且,您可能需要对其进行调整,使其成为各种输入文件和数据库表的通用解决方案。但这应该为你提供足够的信息来解决你的需要。

相关问题