我想插入很多行,但在一列中我希望它增加。在我的例子中,我将变量设置为5000,并且每次将一行添加到数据库时,我希望它增加1。
我现在要说这与自动增量无关。我需要一个递增字段是有原因的。
这是我的插入查询
$incrementField=5000;
$query="INSERT INTO `table` (`incrementField`,`this`,`morestuff`)
SELECT ?,`this`,`morestuff` FROM `someTable`";
$stmt = $db->prepare($query);
$stmt->bind_param('i',$incrementField);
$stmt->execute();
$stmt->close();
哪里?我希望它增加。 我试过?+1?。+ 1和各种排列,但似乎没什么用。
答案 0 :(得分:0)
你绝对应该使用SQL AUTO_INCREMENT
逻辑。我想这些列应该是唯一的标识符,也称为PRIMARY KEY
。
答案 1 :(得分:0)
我现在有一个可以正常使用的答案
$incrementField=5000;
$query="INSERT INTO `table` (`incrementField`,`this`,`morestuff`)
SELECT @position := ifnull(@position, ?) + 1),`this`,`morestuff` FROM `someTable`";
$stmt = $db->prepare($query);
$stmt->bind_param('i',$incrementField);
$stmt->execute();
$stmt->close();
毕竟它可以完成。 我认为告诉我不能做的人越多,只会鼓励我更多地找到解决方案。所以那些说不能做的人都可以。