我是这里的新手,关于PHP;请耐心等待: - )
我有一个包含15000行的MySQL表;我需要使用varchar(15)
PHP函数填充它的一个字段(uniqid()
) - 以类似于主键的方式使用。
算法是:
uniqid()
函数生成值; 直到表格结尾的所有这三个步骤(所有记录)。
完成所有这些操作的PHP代码是什么?
答案 0 :(得分:2)
首先,15000行不是很多。所以它可以通过多种方式完成。其次,SQL中没有“第一行”或“第二行”或“最后一行”这样的概念。因此,除非您说的是当前抓取的记录集中的第一行或光标中的第一行,否则您的算法将无效。
无论如何,我不会这样做。我会分两步,通过创建一个具有您想要的确切格式的表,但ID字段是一个自动增量字段,然后insert into newtable select * from oldtable order by something
最后,您说这是一个PHP问题,但听起来您要求的是一次性解决方案。如果是这种情况,我只会在SQL中使用它,而不是尝试编写PHP来实现它。
答案 1 :(得分:0)
$cnt = 0;
$result = mysql_query('SELECT COUNT(*) AS cnt FROM table');
if (($row = mysql_fetch_assoc($result)) !== false) {
$cnt = $row['cnt'];
}
$ids = array();
$num = 0;
while ($num < $cnt) {
$id = uniqid();
while(in_array($id, $ids)) {
$id = uniqid();
}
mysql_query('UPDATE table SET the_column_you_need_to_update='.$id.' LIMIT 1 OFFSET '.$num);
$num++;
}