【发布时间】:2015-11-22 19:04:55
【问题描述】:
我有一个查询要分批插入多行。基本上,我需要分批拆分插入,以便为插入的批次生成唯一的随机 ID。
我尝试过很多不同的选项但都失败了,其中之一如下。
$batch = 150;
$sql = "SELECT DISTINCT `column` FROM `table` GROUP BY `column` ORDER BY `ID` ASC";
$sqle = $con->Execute($sql);
$results = $sqle->getrows();
for($i=0; $i<count($results);$i++){
$columns1 = $results[$i]['column'];
if($i==$batch){
$randd = randcode(5).time();
$sql = "INSERT INTO `newtable` SET `columns1` = ".$con->qstr($columns1).", `rcode` = ".$con->qstr($randd).", `DATE_PUBLISHED` = ".$con->qstr($sdate);
$results=$con->Execute($sql);
$i=0;
}
}
但是,在每 150 批插入的查询中插入唯一代码并不成功。
为每批生成随机唯一代码我哪里出错了?我也想知道如果记录少于150条,那么如何处理呢?
【问题讨论】:
-
您的 INSERT 查询似乎是错误的
-
是的,这个查询无限循环
-
只是看看我是否遵循正确;您希望每个插入的行的唯一代码是唯一的,而不是每个插入的行?例如。对于前 150 个插入的行,它可能是“12345”,而对于接下来的 150 行,它可能是“56789”?
-
$results用于for循环的条件,但在循环内部它被操纵(所以它可能永远不会停止运行?)。也许选择另一个名字更好? -
@mhall 是的,正是我需要的