gpt4 book ai didi

php - 使用计数器将多行插入表中

转载 作者:行者123 更新时间:2023-11-28 23:58:38 25 4
gpt4 key购买 nike

我有一个查询可以根据排名为我选择数据库中所有节目的位置。我需要将它们插入到如下所示的“排名历史记录”表中:

Table:Ranking_History
Ranking_id Show_id Date Position
1 3 1
2 18 2
3 2 3

目前的情况是,我通过 PHP 获取所有职位,然后将其插入到我的数据库中。像这样:

$positions = Show::get_positions();
$pos = 1;
foreach ($positions as $key=>$val) {
INSERT INTO ranking_history (show_id, date, position) VALUES ('$val', CURDATE(), '$pos')
$pos++;
}

有没有一种方法可以避免运行多个查询并将其插入到一个查询中的开销滞后?

类似于 INSERT...SELECT 语句,但需要某种计数器来跟踪当前“行”。在这种情况下,开销成本是否有那么重要(我每天插入大约 6000 行)。我相当确定它需要通过存储过程来完成,但在该类别中我对 MySQL 还很陌生。

最佳答案

插入可以接受多组值,所以先创建它们,然后运行单个插入

    $values='';
foreach ($positions as $key=>$val) {
$values .= "('$val', CURDATE(), '$pos'),";
$pos++;
}

$values=rtrim($values,','); //remove left over comma

$q="INSERT INTO ranking_history (show_id, date, position) VALUES ".$values;

//run $q

关于php - 使用计数器将多行插入表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30746794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com